Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "don't like decisions"
-
So i've been a dev manager for a little while now. Thought i'd take some time to disambiguate some job titles to let everyone know what they might be in for when joining / moving around a big org.
Title: Senior Software Engineer
Background:
- Technical
- Clever
- Typically has years experience building what management are trying to build
Responsibilities:
- Building new features
- Writing code
- Code review
- Offering advice to product manag......OH NO YOU DON'T CODE MONKEY, BACK TO WORK!
Title: Dev Manager
Background:
- Technical
- Former/current programmer
- knows his/her way around a codebase.
Responsibilities:
- Recruiting / interviewing new staff
- Keeping the team focused and delivering tasks
- Architecture decisions
- Lying about complexity of architecture decisions to ensure team gets the actual time they need
- Lying about feature estimations to ensure team gets to work on critical technical improvements that were cancelled / de-prioritised
- Explaining to hire-ups why we can't "Just do it quicker"
- Explaining to senior engineers why the product manager declined their meeting request
Title: Product / Product Manager
Background:
- Nothing relevant to the industry or product line what so ever
- Found the correct building on the day of the interview
- Has once opened an Excel spreadsheet and successfully saved it to a desktop
Responsibilities:
- Making every key decision about every feature available in the app
- Learning to ignore that inner voice we like to call "Common sense"
- Making sure to not accidentally take some advice from technical staff
- Raising the blood pressure of everyone below them / working with them
Title: Program Lead / Product Owner
Background:
- Capable of speech
- Aware of what a computer is (optional)
Responsibilities:
- Sitting down
- Talking
- Clicking random buttons on Jira
- Making bullet point lists
Title: Director of Software Engineering
Background:
- Allegedly attended college/university to study computer science
- Similar to a technical product manager (technical optional)
Responsibilities:
- Reports directly to VP
- Fixes problems by creating a different problem somewhere else as a distraction
- Claiming to understand and green light technical decisions, while having already agreed with product that it will never happenrant program lead practisesafehexs-new-life-as-a-manager management explanation product product owner9 -
I have been a mobile developer working with Android for about 6 years now. In that time, I have endured countless annoyances in the Android development space. I will endure them no more.
My complaints are:
1. Ridiculous build times. In what universe is it acceptable for us to wait 30 seconds for a build to complete. Yes, I've done all the optimisations mentioned on this page and then some. Don't even mention hot reload as it doesn't work fast enough or just does not work at all. Also, buying better hardware should not be a requirement to build a simple Android app, Xcode builds in 2 seconds with a 8GB Macbook Air. A Macbook Air!
2. IDE. Android Studio is a memory hog even if you throw 32GB of RAM at it. The visual editors are janky as hell. If you use Eclipse, you may as well just chop off your fingers right now because you will have no use for them after you try and build an app from afresh. I mean, just look at some of the posts in this subreddit where the common response is to invalidate caches and restart. That should only be used as a last resort, but it's thrown about like as if it solves everything. Truth be told, it's Gradle's fault. Gradle is so annoying I've dedicated the next point to it.
3. Gradle. I am convinced that Gradle causes 50% of an Android developer's pain. From the build times to the integration into various IDEs to its insane package management system. Why do I need to manually exclude dependencies from other dependencies, the build tool should just handle it for me. C'mon it's 2019. Gradle is so bad that it requires approx 54GB of RAM to work out that I have removed a dependency from the list of dependencies. Also I cannot work out what properties I need to put in what block.
4. API. Android API is over-bloated and hellish. How do I schedule a recurring notification? Oh use an AlarmManager. Yes you heard right, an AlarmManager... Not a NotificationManager because that would be too easy. Also has anyone ever tried running a long running task? Or done an asynchronous task? Or dealt with closing/opening a keyboard? Or handling clicks from a RecyclerView? Yes, I know Android Jetpack aims to solve these issues but over the years I have become so jaded by things that have meant to solve other broken things, that there isn't much hope for Jetpack in my mind 😤
5. API 2. A non-insignificant number of Android users are still on Jelly Bean or KitKat! That means we, as developers, have to support some of your shitty API decisions (Fragments, Activities, ListView) from all the way back then!
6. Not reactive enough. Android has support for Databinding recently but this kind of stuff should have been introduced from the very start. Look at React or Flutter as to how easy it is to make shit happen without any effort.
7. Layouts. What the actual hell is going on here. MDPI, XHDPI, XXHDPI, mipmap, drawable. Fuck it, just chuck it all in the drawable folder. Seriously, Android should handle this for me. If I am designing for a larger screen then it should be responsive. I don't want to deal with 50 different layouts spread over 6 different folders.
8. Permission system. Why was this not included from the very start? Rogue apps have abused this and abused your user's privacy and security. Yet you ban us and not them from the Play Store. What's going on? We need answers.
9. In Android, building an app took me 3 months and I had a lot of work left to do but I got so sick of Android dev I dropped it in favour of Flutter. I built the same app in Flutter and it took me around a month and I completed it all.
10. XML.
If you're a new dev, for the love of all that is good in this world, do NOT get into Android development. Start with Flutter or even iOS. On Flutter and build times are insanely fast and the hot reload is under 500ms constantly. It's a breath of fresh air and will save you a lot of headaches AND it builds for iOS flawlessly.
To the people who build Android, advocate it and work on it, sorry to swear, but fuck you! You have created a mess that we have to work with on a day-to-day basis only for us to get banned from the app store! You have sold us a lie that Android development is amazing with all the sweet treat names and conferences that look bubbly and fun. You have allowed to get it so bad that we can't target an API higher than 18 because some Android users are still using devices that support that!
End this misery. End our pain. End our suffering. Throw this abomination away like you do with some of your other projects and migrate your efforts over to Flutter. Please!
#NoToGoogleIO #AndroidSummitBoycott #FlutterDev #ReactNative16 -
For my passionate coders out here, I have some tips I learned over the years in a business/IT environment.
1) Don't let stupid management force you into making decisions that will provide a bad product. Tell them your opinion and why you should do it that way. Never just go with their decision.
2)F@#k hackathons, you're basicly coding software for free, that the company might use. Want to probe yourself? Join a community and participate in their challenges.
3)No matter how good you are, haters are common.
4)Learn to have a good communication, some keywords are important to express yourself to other developers or customers. Try crazy things, don't be shy.
5)Never stand still, go hear at other companies what they offer, compare and choose your best fit. This leads me into point...
6)if you've been working for over a year and feel that you have participated enough in the companies growth, ask a raise, don't be afraid...you're wanted on the market, so either they negotiate a new contract or you find another job.
I'm sharing these with you as I made many mistakes regarding these points, I have coded for free or invested so much time in a company just to prove myself. But at the end I realize that my portfolio is enough to prove that I'm capable of doing the job. They don't like me? Or ask me stupid questions that I can google in 5 minutes. I'll just decline the job and get something better. Companies end up giving me nothing in return compared to the work I have put into it. At the end after some struggles you'll find a good fit and that's so important for your programming career. Burnouts happen quite often if you're just a coding puppy.
If some of you still have additional tips be sure to post them under here11 -
Less a rant, more just a sad story.
Our company recently acquired its sister company, and everyone has been focused on improving and migrating their projects over to our stack.
There's a ton of material there, but this one little story summarizes the whole very accurately, I think. (Edit: two stories. I couldn't resist.)
There's a 3-reel novelty slot machine game with cards instead of the usual symbols, and winnings based on poker-like rules (straights and/or flushes, 2-3 of a kind, etc.) The machine is over a hundred times slower than the other slot machines because on every spin it runs each payline against a winnings table that exhastively lists every winning possibility, and I really do mean exhaustively. It lists every type of win, for every card, every segment for straights, in every order, of every suit. Absolutely everything.
And this logic has been totally acceptable for just. so. long. When I saw someone complaining in dev chat about how much slower it is, i made the bloody obvious suggestion of parsing the cards and applying some minimal logic to see if it's a winning combination. Nobody cared.
Ten minutes later, someone from the original project was like "Hey, I have an idea, why don't we do it algorithmically to not have a 4k line rewards table?"
He seriously tried stealing a really bloody obvious idea -- that he hadn't had for years prior -- and passing it off as his own. In the same chat. Eight messages below mine. What a derpballoon.
I called him out on it, and he was like "Oh, is that what you meant by parsing?" 🙄
Someone else leaped in to defend the ~128x slower approach, saying: "That's the tech we had." You really didn't have a for loop and a handful of if statements? Oh wait, you did, because that's how you're checking your exhaustive list. gfj. Abysmal decisions like this is exactly why most of you got fired. (Seriously: these same people were making devops decisions. They were hemorrhaging money.)
But regardless, the quality of bloody everything from that sister company is like this. One of the other fiascos involved pulling data from Facebook -- which they didn't ever even use -- and instead of failing on error/unexpected data, it just instantly repeated. So when Facebook changed permissions on friends context... you can see where this is going. Instead of their baseline of like 1400 errors per day, which is amazingly high, it spiked to EIGHTEEN BLOODY MILLION PER DAY. And they didn't even care until they noticed (like four days later) that it was killing their other online features because quite literally no other request could make it out. More reasons they got fired. I'm not even kidding: no single api request ever left the users' devices apart from the facebook checks.
So.
That's absolutely amazing.8 -
Yeah Mozilla fuck merit and fuck you too!
This, this is what I was talking about when the fucking CoC came out and everyone (including it's author) started it using it as a political weapon.
You castrated fucking virgins! Mozilla, I want to support you I really don't like chrome but you always manage to disappoint everyone. I'm tired, tired of you morally superior socialists infecting my fucking workplace, entertainment and news.
This is just an excuse for lazy assholes to have their cake and eat it too and it's damn fucking INSULTING to us "minorities", I can work to get nice things just like anyone else bitch! having another skin color is not a disability!
Worst of all, you seem to have straight out millennial retards making these decisions seeing as it's based on an article from a washed up "gender research" professor that thinks Barbie Doctor is problematic, the most biased and dumb source you can possibly pull out of your ass.
Two classmates were murdered this morning, do you really think we care about what your diversity and inclusion Dept thinks it's problematic? You delusional halfwits, the only comforting thought is that your soft bigotry will perish alongside your product when it inevitably diminishes it's quality for sake of "equality".
Want to make better products? Ditch your useless diversity and inclusion department and start optimizing the memory consumption on firefox.
Want to help minorities? Start paying your outsourced developers decently.
I hope this helps people who thought including politics in software development wouldn't have dire consecuences to open their eyes; if not, oh well I guess people will get it when mozilla keeps going down the drain and they get fired because they just outsourced their work in the name of "diversity" just to save money.
https://blog.mozilla.org/inclusion/...95 -
ARGH. I wrote a long rant containing a bunch of gems from the codebase at @work, and lost it.
I'll summarize the few I remember.
First, the cliche:
if (x == true) { return true; } else { return false; };
Seriously written (more than once) by the "legendary" devs themselves.
Then, lots of typos in constants (and methods, and comments, and ...) like:
SMD_AGENT_SHCEDULE_XYZ = '5-year-old-typo'
and gems like:
def hot_garbage
magic = [nil, '']
magic = [0, nil] if something_something
success = other_method_that_returns_nothing(magic)
if success == true
return true # signal success
end
end
^ That one is from our glorious self-proclaimed leader / "engineering director" / the junior dev thundercunt on a power trip. Good stuff.
Next up are a few of my personal favorites:
Report.run_every 4.hours # Every 6 hours
Daemon.run_at_hour 6 # Daily at 8am
LANG_ENGLISH = :en
LANG_SPANISH = :sp # because fuck standards, right?
And for design decisions...
The code was supposed to support multiple currencies, but just disregards them and sets a hardcoded 'usd' instead -- and the system stores that string on literally hundreds of millions of records, often multiple times too (e.g. for payment, display fees, etc). and! AND! IT'S ALWAYS A FUCKING VARCHAR(255)! So a single payment record uses 768 bytes to store 'usd' 'usd' 'usd'
I'd mention the design decisions that led to the 35 second minimum pay API response time (often 55 sec), but i don't remember the details well enough.
Also:
The senior devs can get pretty much anything through code review. So can the dev accountants. and ... well, pretty much everyone else. Seriously, i have absolutely no idea how all of this shit managed to get published.
But speaking of code reviews: Some security holes are allowed through because (and i quote) "they already exist elsewhere in the codebase." You can't make this up.
Oh, and another!
In a feature that merges two user objects and all their data, there's a method to generate a unique ID. It concatenates 12 random numbers (one at a time, ofc) then checks the database to see if that id already exists. It tries this 20 times, and uses the first unique one... or falls through and uses its last attempt. This ofc leads to collisions, and those collisions are messy and require a db rollback to fix. gg. This was written by the "legendary" dev himself, replete with his signature single-letter variable names. I brought it up and he laughed it off, saying the collisions have been rare enough it doesn't really matter so he won't fix it.
Yep, it's garbage all the way down.16 -
If you need to learn/teach object orientation, these are my approaches (I hate that classic "car" example):
1) Keep in mind games like Warcraft, Starcraft, Civilization, Age of Empires (yes, I am old school). They are a good example of having classes to use, instantiating objects (creatures) and putting them to work together. As in a real system.
2) Think of your program as an office that has a job to do, or a factory that has something to deliver. Classes are the roles/jobs and objects are the workers/employees. They don't need to be complex, but their purpose must be really (really, really) well defined. Just like in a real office / factory.
3) Even better (or crazier), see your classes and objects as real beings, digital creatures in a abstract world, and yourself as a kind of god, who creates species (define classes) with wisdom. Give life when it is the time for them to come into the world (instantiate object) and kill them when they are done with their mission (dispose an object). Give them behavior, logic, conditions to work with, situations where they take action, and when they don't. Make them kinda "smart". Build them able to make decisions and take actions based on conditions. Give them life. Think on your program as an ecossystem. There must be balance, connection, species must be well defined and creatures must work together to achieve a common objective. Don't just throw code and pray for it to run. Plan it.
-----
When I talk about my classes like they are real beings, and programs as mini-worlds, some people say I am crazy, some others say that's passion.
It is both! @__@3 -
I was recuited to do devops work for a client. The project started in late '14. Until mid '15 I was forced to just sit there and do nothing. And I mean nothing. The ops team needed my help but the project lead didn't allow that (endless discussions). Somewhere around the end of '15 I could start to work and quickly learned that I had to report to two leads that couldn't disagree more on what to do and how to do it. I also learned that the companies mentality is "Clean me but don't get me wet". So the ops team demands a lot but is really uncooperative with everything. So I am currently sitting between three grindstones and everything I do is worthless. Because nobody agrees with anybody and I cannot fulfill my job for which I have been hired: Make ops more efficient because they are drowning in manual work. My job is further complicated by the following facts: This company uses no standard whatsoever but their own. Thru this they have created a Rube-Goldberg-Machine. But they think their system is the greatest in the world and the only one that makes sense. Which makes automation pointless because it is not maintainable. They call it diversity and they say that it is the clear reason why automation is not for them even though they schedule meeting after meeting in which they discuss about how to automate things. But in general they do just block everything useful and sabotage my work. And behind my back they make me the reason for the fail. Every real decision is blocked anyway. Also the ops guys think they are the leetest in the world. And everything they invent is above and beyond. If you ask them why they have over 400 VLANs for example (in a company of unter a thousand employees) they stutter and stumble because they cannot explain their complicated shit. They also change their decisions like underwear. Another really "kewl" thing they just did: They hired a devops engineer and everybody loves him. During the interview he said that he has no prior experience with devops whatsoever and it will take him around six month to get started on the basics of devops. I could go on for hours here about the insanity of this company that in my opinion will cease to exist within the next 5 years, if you ask me.
Long story short I am getting out of there by the end of march and will be on sabbatical shortly after because I am burned out. And I mean burned out. Not like "Oh I am burned out". I mean really burned out, with health problems and everything. Another external guy got out here last month because of the same health conditions.4 -
This Part 3 and finale of the tale of Mr DDTW, or the worst coworker I've ever had to deal with. I suggest you start from the beginning if you don't have the context, it's been a trip.
Part 1: https://devrant.com/rants/4210605
Part 2: https://devrant.com/rants/4220715
The problem with this man threatening to snitch on me to the professor if I didn't revert my commit was that he backed me into a corner. Letting him go at his pace with his quality standards would have ruined the project for the rest of us, and I'm not going to let three other people's grades suffer because one was lazy. I'm the PM, team lead, the guy who will ultimately be held responsible for this project succeeding or failing and the mediator of problems.
So I snitched first.
The professor knew us. He had an idea of how we worked as a team, who was enthusiastic about this subject, who was diligent, and who wasn't. It'd been half a semester and he wasn't stupid. I'd also taken the not-so-minor task of testing our software and handling all the little integration problems between components and between the professor's server. This had resulted in several calls between me and him because he'd been flying by the seat of his pants with some of the upgrades he'd been doing to the server code and as the fastest group we were the ones running into all the bugs on his end. And he'd also noted our prior complaint and seen the discrepancy in commits, author tags and hours logged. Mr DDTW had been graded significantly worse than the rest of us. So when I sent him a goddamn novel about our team's internal problems, the bomb was set. And so we get to the conference call, with everybody panicking and with no clue what any of this is about. Except me.
Dear god. That call was pure catharsis. Never have I seen a man get demolished so hard. Mr DDTW got a 45 minute LECTURE, a goddamn SMACKDOWN, about how he needs to take some responsibility for this team effort and that in the real world he'd have been fired. And the professor was so incredibly serene throughout! He could've blasted him with the rage of a thousand suns but he said it in such a way that Mr DDTW's only real responses were "yes", "I understand" and "I'm sorry". An entire semester of this useless fucking bitch being nothing but a leech on our team in three separate projects and he was finally getting SCHOOLED. And then, it gets even better. The professor asked how we could solve this problem, as Mr DDTW needs to do work to be graded but he can't hold us back.
I dropped a suggestion: As I had implemented the module in a way that worked, we could carry on using my version while Mr DDTW could work on a separate branch. Everything else was working reasonably well for an MVP, we just needed to improve and test now, so if Mr DDTW got it working we could merge it back into the main branch. This solved the team's problem of not being able to progress, it solved Mr DDTWs problem of not wanting to fail the course, and it solved my problem of not having to work with this shit-for-brains for the forseeable future. A weight was lifted off my shoulders. No more Mr DDTW. No more bitching and no more shitcode. A grating arsehole that had been bugging everyone all sememster put in his place and out of my hair.
On the way home from uni that day, I rang a friend and told him the entire story as I needed to get it off my chest. Every time I brought up a problem, an issue, a setback, an argument, he made a remark.
"Damn, if only he just... did the work."
Every time he said it it was in a slightly different way, but every time it made me laugh harder as he just didn't stop interrupting me with the same comment. If only he did the work. But the funniest part of all was how right he was. Mr DDTW had so many opportunities to just sit down, shut up, and do the work like the rest of us, but instead he decided to do fuck-all until he got flak for it and proceeded to dig his own grave. What sort of delusional entitlement, sheer incompetence or other dumbfuckery was he suffering from to make such terrible decisions? It's his last year of university and he still hadn't learned to just do the goddamn work (I would later find out that his friend had covered his shortcomings a lot and was apparently the reason why he hadn't flunked out of uni yet).
And so ends the story of Mr Didn't Do The Work the worst person I have ever had the displeasure of working with. We never did merge his branch as we ran out of time during testing. The professor passed him, possibly out of pity or just so that he wouldn't have to resit the course and burden some other poor sods. We weren't the top scorers this time, partially because of my shortcomings as PM but mostly because of the huge delays and manpower deficit, but we did well enough to pass the course with some very high grades. With one exception of course.5 -
College can be one of the worst investments for an IT career ever.
I've been in university for the past 3 years and my views on higher education have radically changed from positive to mostly cynical.
This is an extremely polarizing topic, some say "your college is shite", "#notall", "you complain too much", and to all of you I am glad you are happy with your expensive toilet paper and feel like your dick just grew an inch longer, what I'll be talking about is my personal experience and you may make of it what you wish. I'm not addressing the best ivy-league Unis those are a whole other topic, I'll talk about average Unis for average Joes like me.
Higher education has been the golden ticket for countless generations, you know it, your parents believe in it and your grandparents lived it. But things are not like they used to be, higher education is a failing business model that will soon burst, it used to be simple, good grades + good college + nice title = happy life.
Sounds good? Well fuck you because the career paths that still work like that are limited, like less than 4.
The above is specially true in IT where shit moves so fast and furious if you get distracted for just a second you get Paul Walkered out of the Valley; companies don't want you to serve your best anymore, they want grunt work for the most part and grunts with inferiority complex to manage those grunts and ship the rest to India (or Mexico) at best startups hire the best problem solvers they can get because they need quality rather than quantity.
Does Uni prepare you for that? Well...no, the industry changes so much they can't even follow up on what it requires and ends up creating lousy study programs then tells you to invest $200k+ in "your future" for you to sweat your ass off on unproductive tasks to then get out and be struck by jobs that ask for knowledge you hadn't even heard off.
Remember those nights you wasted drawing ER diagrams while that other shmuck followed tutorials on react? Well he's your boss now, but don't worry you will wear your tired eyes, caffeine saturated breath and overweight with pride while holding your empty title, don't get me wrong I've indulged in some rough play too but I have noticed that 3 months giving a project my heart and soul teaches me more than 6 months of painstakingly pleasing professors with big egos.
And the soon to be graduates, my God...you have the ones that are there for the lulz, the nerds that beat their ass off to sustain a scholarship they'll have to pay back with interests and the ones that just hope for the best. The last two of the list are the ones I really feel bad for, the nerds will beat themselves over and over to comply with teacher demands not noticing they are about to graduate still versioning on .zip and drive, the latter feel something's wrong but they have no chances if there isn't a teacher to mentor them.
And what pisses me off even more is the typical answers to these issues "you NEED the title" and "you need to be self taught". First of all bitch how many times have we heard, seen and experienced the rejection for being overqualified? The market is saturated with titles, so much so they have become meaningless, IT companies now hire on an experience, economical and likeability basis. Worse, you tell me I need to be self taught, fucker I've been self taught for years why would I travel 10km a day for you to give me 0 new insights, slacking in my face or do what my dog does when I program (stare at me) and that's just on the days you decide to attend!
But not everything is bad, college does give you three things: networking, some good teachers and expensive dead tree remnants, is it worth the price tag, not really, not if you don't need it.
My broken family is not one of resources and even tho I had an 80% scholarship at the second best uni of my country I decided I didn't need the 10+ year debt for not sleeping 4 years, I decided to go to the 3rd in the list which is state funded; as for that decision it worked out as I'm paying most of everything now and through my BS I've noticed all of the above, I've visited 4 universities in my country and 4 abroad and even tho they have better everything abroad it still doesn't justify some of the prices.
If you don't feel like I do and you are happy, I'm happy for you. My rant is about my personal experience which is kind of in the context of IT higher education in the last ~8 years.
Just letting some steam off and not regretting most of my decisions.15 -
I try as hard as possible not to be judgemental towards incompetent colleagues, motivating myself with the knowledge that we were all incompetent at some point, and that people need a chance to learn, and that sometimes too much pressure will lead you to believe that they're bad. Or sometimes, people just aren't good at the stuff you want them to be good, and you just need to discover that niche where they will be very useful.
Mostly that goes well.
I've had the incompetent late bloomer who was a family man who started too late to dev, and wasn't really serious. A bit of harsh talk, some soul searching over a few beers, made him into a really valuable asset. Not the brightest rock, but reliable, steady-paced developer who earned his stay.
Then there was the girl who wasn't really good at coding, but saved our team from disaster many times by keeping things into account, and realizing what must be developed or tested at every step.
However, there are exceptions. I've worked with people who have been nothing but a menace, through their incompetence AND attitudes.
The most noteworthy example was an intern that we sought out, by talking to professors to point us to their best students. So we got that intern on board. He seemed strange at first. Kind of perfectionist. Talked serious, with an air of royalty, and always dressed sharply. He really gave the impression that one must be worthy to receive his blessing. The weirdest part was his handshake. It was as if he was touching an iron hand heated to 3000 degrees. It was over before you even knew it. Leaves you kinda offended. Especially when he always took a wet wipe after that and wiped his hands. Am I really that gross?
But that's fiiiine. I mean we're all different and weird in our own ways, right? So he's a germophobe, so fucking what? We just gotta find a way to work together, right?
WRONG.
As soon as he started (and remember, he's a paid intern, who barely knows how to code, and has zero industrial experience), he started questioning my architecture solutions, code implementations, etc. I don't mind discussion and criticism, which is why I welcomed his input. But it seemed like he wasn't willing to accept any arguments, so I started looking for excuses not to talk to him.
Meanwhile, the most productive team member we had, to whom you could just give and describe an idea, with architecture and stuff, well, and you'd see it implemented the next week, with only the most well placed questions asked, started going into fights with this intern for the same reasons I was avoiding him.
.....
And here's the kicker.
Get this:
This intern comes to me (I was the team lead), while that guy is not in the office, and with a straight face, dead serious, starts telling me that that guy was making stupid decisions and being a bad team member because he doesn't ... I quote him almost verbatim... "follow my indications". He said that I had to do something because he refused to work with him together.
I was stunned.
This good for nothing imagined superhuman, who was completely useless and an amazing annoyance to pretty much everyone in the team, came to me, telling me that the most capable and productive developer in the team is bad, because he doesn't follow his orders, and that I had to pick between the 2.
I couldn't believe what I had heard.
I had so much emotion in me right then. I was angry, but at the same time I could barely abstain from laughing.
I just told him calmly that he was wrong, and that I wouldn't mind if he never came back. I didn't see him for 5 years after that.
Anyway, later that week our team went for a dinner + beer, and the stories from all the team members started pouring in. They didn't want to talk him down either, but now that he was gone, it was a weight off, and everybody could tell their story.
What a fucking asshole.
So 5 years after I stumbled on him as he was entering a church. Still an arrogant bitch. Barely exchanged 10 polite words and I continued on my way as he was disinfecting his hands from my filthy handshake.4 -
I am tired of toxic politics at work.
Signs of a toxic workplace:
* (good) decisions are discouraged rather than encouraged.
Someone wants to introduce a great optimization and guess what the reply is (often from someone IT-ignorant): wait a minute, you can't do that because we have all these nifty little hacks and if you dare to suggest change to our shitty system, we could not allow that! We want to stay in our comfy zone, no no!
* no one can make a decision unless Mr. favorite-developer-everyone-likes says it's a good idea. And even if he's wrong, no one cares to listen to anyone else's idea on it. Stupid Feudalism. One man decides over the entire codebase. That's just idiocy. Where's TEAM in there?
* thinking years of experience equals intellectual capacity. It certainly does not! There are senior developers with 15 years of experience who don't even know how to open commandline, or they didn't even know about Chrome developer tools, or how the HTTP spec is built. That shit just makes me cry inside. How can you give these peoples the title of senior when they know less than a freshman year kid?!
* ignoring people's education and/or capacities. "You just graduated, so you're a noob". Right, I know more than you, you idiot. You've demonstrated your ignorance often enough. Stupid ignorant colleagues.
* blaming politics (every team blames the other team and there's constant tension)
* roaming ignorance (no one in the company, and I mean no one, besides me, knows enough about Information Technology to make competent decisions or analysis)
Politics:
What gives testers the idea that they know more than other members of the team? Why do they treat devs like they are mentally challenged?
What gives PO's that same idea?
What gives managers the idea that they can just yell at developers and threaten them with time pressure? Yeah, because the customers are breathing down their neck.
Just because I am a Junior Developer, that makes me stupid? I am tired of no one caring to listen to my ideas. I could save the company at the snap of a finger but everyone ignores my opinion (and often facts) on things.
People come in and instead of asking me for help, they ask everyone else for help, including the people who don't know shit about IT; now that's insulting.
Anyway, toxic politics.3 -
I've recently received another invitation to Google's Foobar challenges.
A while ago someone here on devRant (which I believe works at Google, and whose support I deeply appreciate) sent me a couple of links to it too. Unfortunately back then I didn't take the time to learn the programming languages (Python or Java) that Google requires for these challenges. This time I'm putting everything on Python, as it's the easiest language to learn when coming from Bash.
But at the end of the day.. I am a sysadmin, not a developer. I don't know a single thing about either of these languages. Yet I can't take these challenges as the sysadmin I am. Instead, I have to learn a new language which chances are I'll never need again outside of some HR dickhead's interview with lateral thinking questions and whiteboard programming, probably prohibited from using Google search like every sane programmer and/or sysadmin would for practical challenges that actually occur in real life.
I don't want to do that. Google is a once in a lifetime opportunity, I get that. Many people would probably even steal that foobar link from me if they could. But I don't think that for me it's the right thing to do. Google has made a serious difference by actually challenging developers with practical scenarios, and that's vastly superior to whatever a HR person at any other company could cobble together for an interview. But there's one thing that they don't seem to realize. A company like Google consists of more than just developers. Not only that, it probably consists - even within their developer circles - of more than just Python and Java developers. If any company would know about languages that are more optimized such as C, it would be Google that has to leverage this performance in order to be able to deliver their services.
I'll be frank here. Foobar has its own issues that I don't like. But if Google were a nice company, I'd go for it all the way nonetheless - after all, they are arguably the single biggest tech company in the world, and the tech industry itself is one of the biggest ones in the world nowadays. It's safe to say that there's likely no opportunity like working at Google. But I don't think it's the right thing. Even if I did know Python or Java... Even if I did. I don't like Google's business decisions.
I've recently flashed my OnePlus 6T with LineageOS. It's now completely Google-free, except for a stock Yalp account (that I'm too afraid to replace with my actual Google account because oh dear, third-party app stores, oh dear that could damage our business and has to be made highly illegal!1!). My contacts on that phone are are all gone. They're all stored on a Google server somewhere (except for some like @linuxxx' that I consciously stored on device storage and thus lost a while back), waiting for me to log back in and sync them back. I've never asked for this. If Google explicitly told me that they'd sync all my contacts to my Google account and offer feasible alternatives, I'd probably given more priority to building a CalDAV and CardDAV server of my own. Because I do have the skills and desire to maintain that myself. I don't want Google to do this for me.
Move fast and break things. I've even got a special Termux script on my home screen, aptly named Unfuck-Google-Play. Every other day I have to use it. Google Search. When I open it on my Nexus 6P, which was Google's foray into hardware and in which they failed quite spectacularly - I've even almost bent and killed it tonight, after cursing at that piece of shit every goddamn day - the Google app opens, I type some text into it.. and then it just jumps back to the beginning of whatever I was typing. A preloader of sorts. The app is a fucking web page parser, or heck probably even just an API parser. How does that in any way justify such shitty preloaders? How does that in any way justify such crappy performance on anything but the most recent flagships? I could go on about this all day... I used to run modern Linux on a 15 year old laptop, smoothly. So don't you Google tell me that a - probably trillion dollar - company can't do that shit right. When there's (commercialized) community projects like DuckDuckGo that do things a million times better than you do - yet they can't compete with you due to your shit being preloaded on every phone and tablet and impossible to remove without rooting - that you Google can't do that and a lot more. You've got fucking Google Assistant for fucks sake! Yet you can't make a decent search app - the goddamn thing that your company started with in the first place!?
I'm sorry. I'd love to work at Google and taste the diversity that this company has to offer. But there's *a lot* wrong with it at the business end too. That is something that - in that state - I don't think I want to contribute to, despite it being pretty much a lottery ticket that I've been fortunate enough to draw twice.
Maybe I should just start my own company.6 -
Dunning-Kruger effect is strong with me.
Thankfully, one of the most important skills that I learned is active listening. I am less vocal about my silly thoughts and shitty opinions these days.
I don't feel dumb. Instead, I realise that I AM dumb.
The people in my new org are exceptionally smart and talented. Each everyone is a hand picked gem. This isn't a coincidence. Rather it's evident that they hire folks very carefully.
In my previous org, I used to be the one driving everything. Like the smartest guy in the room.
But here, I am just quiet in every meeting and I enjoy working 12 hours a day. I am the dumbest guy in the room surrounded by people who are brilliant and humble.
I truly feel fortunate and grateful to be part of such an amazing org and wonderful team. One of the best decisions I made in my career and life.8 -
I'm exhausted.
After one and a half year after my last rant, I'm here again. I left the previous job as web developer after almost 12y. At the time I found 3 new jobs as developer; I chose the one with the largest company, the premises were really good. My 3 interviews were excellent. But what I found next was almost a nightmare.
I was literally "confined" for the first 2 months, no internet connection, no email address, very little communication with colleagues. My near colleague was sharing the code were I would work via a usb key. All this for "safety" purposes, because "here you start this way".
For me it was not so bad, I could take my time to study my work and do it (without Stack Overflow and only by reference guides, when needed - I felt proud in an old way). But the next months were really tough: no help to understand what I missed about the work I was doing (consider that I was working on a large database, previously used by an old ERP, on which other developers - prior me - wrote a lot of code, to make the company continue use all the data after the expiration of the ERP licences - speaking about a year 2000's Java application).
Now I find myself struggling, because the main project on which I was working has been set aside (apparently for some budget decisions); my work team constantly make me do some manteinance on the old code, but the main tasks are done by the old mate, "because deadlines are always pressing and there would not be enough time to explain you anything". I'm not growing.
I'm really becoming reluctant to write code, and whenever I do it, I constantly feel under pressure, and this makes me nervous and inclined to make errors.
Don't take me wrong, I was/am good at my work, but it's like I'm loosing that sparkle I had till a few years ago.
When I'm at home I try to study or write code, just to keep training my mind, but I'm really struggling and I'm worried about losing my brain for doing this job. I constantly forget things and lose focus.
Never felt this way. I am thinking about the chance to switch again and search for another company.6 -
Folks...
I think I need to get away from web development...
Honestly, no grudge held against web/mobile development itsef... But the projects, the teams, the workflows... It's always shitty af.
I'm fed up with the bad architecture, poor management decisions, unmaintained legacy code, broken windows, arrogant juniors, arrogant seniors, code smells left to rot, the freaking red door... Hell! The fucking "we don't have time for that" answer to testing... Damn!
Been there done that.
Feels like it's always the same crap and unfortunately, it's rare to start a professional project from scratch.
Fucking angular, broken piece of shit.
Fucking react (& RN) community modules, broken pieces of shit.
Fucking lazy-ass node developers.
Fucking ES and fucking garbage proposals submitted to the TC39.
I wish I could do Haskell / Rust / Clojure professionally... I could even enjoy Go with a good team... Anything but that huge pile of dogshit JS and its community of brainfucked so-called developers.10 -
Long time lurker, first time poster. This site has been a huge source of fun and laughs for me on bad days.
So dear fellas,
I've been a software engineer for about 5 to 6 years which was intense as fuck and I've been burnt out multiple times. My highest rank was a senior software engineer so far.
I was offered a new job recently as a Technical lead for a small team which would mean I have to make architecural decisions on top of good ol grunting out the code. I took up the offer but I'm more worried than happy.
Impostor syndrome has kicked in heavily ever since I agreed to the job. What if they realise I don't know certain things that engineers are supposed to know? What if I get in an embarassing situation where somebody asks me a question and I'm not able to answer? What if people who I work with laugh behind my back cos I'm not a rockstar engineer?
I'm depressed and scared as fuck right now. Usually I had someone senior to ask my questions or get my doubts cleared with, now it looks like I'll be making those decisions and getting things done and I'm shitscared and worried as fuck.
Does anyone have any pointers, tips or anecdotal advice that might help me? It would be much appreciated.
Sorry for the incoherent rant. Have a good one y'all8 -
My last job before going freelance. It started as great startup, but as time passed and the company grew, it all went down the drain and turned into a pretty crappy culture.
Once one of the local "darling" startups, it's now widely known in the local community for low salaries and crazy employee churn.
Management sells this great "startup culture", but reality is wildly different. Not sure if the management believes in what the are selling, or if they know they are selling BS.
- The recurring motto of "Work smarter, not harder" is the biggest BS of them all. Recurring pressure to work unpaid overtime. Not overt, because that's illegal, but you face judgement if you don't comply, and you'll eventually see consequences like lack of raises, or being passed for promotions in favour of less competent people that are willing to comply.
- Expectation management is worse than non-existent. Worse, because they actually feed expectations they have no intention of delivering on. (I.e, career progression, salary bumps and so on)
- Management is (rightfully) proud of hiring talented people, but then treat almost everyone like they're stupid.
- Feedback is consistently ignored.
- Senior people leave. Replace them with cheap juniors. Promote the few juniors that stay for more than 12 months to middle-management positions and wonder where things went wrong.
- People who rock the boat about the bad culture or the shitty stunts that management occasionally pulls get pushed out.
- Get everyone working overtime for a week to setup a venue for a large event, abroad, while you have everyone in bunk rooms at the cheapest hostel you could find and you don't even cover all meal expenses. No staff hired to setup the venue, so this includes heavy lifting of all sorts. Fly them on the cheapest fares, ensuring nobody gets a direct flight and has a good few hours of layover. Fly them on the weekend, to make sure nobody is "wasting time" travelling during work hours. Then call this a team building.
This is a tech recruitment company that makes a big fuss about how tech recruitment is broken and toxic...
Also a company that wants to use ML and AI to match candidates to jobs and build a sophisticated product, and wanted a stronger "Engineering culture" not so long ago. Meanwhile:
- Engineering is shoved into the back seat. Major company and product decisions made without input from anyone on the engineering side of things, including the product roadmaps.
- Product lead is an inexperienced kid with zero tech background -> Promote him to also manage the developers as part of the product team while getting rid of your tech lead.
- Dev team is essentially seen by management as an assembly line for features. Dev salaries are now well below market average, and they wonder why it's hard to recruit good devs. (Again, this is a tech recruitment company)1 -
!rant but help?
I currently have Kali (for labs I'm working on to teach myself the things I didn't learn in school), Ubuntu (downloaded for school), and Fedora (downloaded for my database class)... other than Kali already having Metasploit in it, I don't see a difference between these and I know there are more versions of Linux.
What would be a good starting place for every day use, that'll support Citrix receiver (required for work no idea what its requirements are but I can find out, if i can't use it in Linux, I'll dual boot) and virtual box (or other virtual software, don't mind learning new systems), and that i can also have room to grow for security learning?18 -
I presented a graduation relevant project this week.
We re maked our school website. Our teachers liked it, the most students liked it too.
But at the beginning I made wrong decisions.
The guy who should design it made nothing and at the presentation, he told that you need a pencil and eraser to design a website.
A "friend" of mine should do the HTML/CSS part but instead of finish it, he made a not working search bar in JS and was like "I made this, it doesn't work and we don't need it but give me attention"
I hate working in a group.
Sorry for spelling mistakes, English is not my native language.4 -
Things said at work that would be misunderstood when taken out of context:
Yesterday-
client: "I don't like the D"
Boss: "well what if it's a little d"
Client: "I don't think the size of the D matters, do you think people make decisions on the size of a D"
Me: *trying so hard to laugh I spit coffee everywhere*
Today-
Boss: "are you working on that sex padding?"
Me: *trying so hard to laugh I spit coffee everywhere*1 -
This one is interesting
- 9 to 5 (including breaks) aka WLB
- Building products in my area of passion (Music, Art, or Travel)
- High paying (I don't care for those perks like free food or bean bags)
- Enough vacations without judgement
- Continuous innovation (fuck your 1830s product)
- Good social capital (teams should trust me for my decisions)
- WFH where I can opt to go in to office whenever I want (so that I can build my awesome battle rig at home)21 -
And once again, Spotify just leaves me speechless.
I guess I don't actually need to talk about this clusterfuck of a mobile app getting more and more slow and unstable with every update. So let's talk about something else.
When I cracked the first limit, I thought it had to be a joke. 9.999 songs can be downloaded at once. But not all on one device. You can download 3.333 songs each to three separate devices - regardless of the fact that there is more than enough space left on the device and you are not even using any other device.
When I read this one [-> https://goo.gl/43YwKm ], I really got angry:
"If you move, or enter the wrong details, you need to create a new account (make sure you cancel the plan on your old account beforehand, and sign out everywhere) and subscribe to Premium for Family on that new account."
I don't even know how to respond to this except with insane wrath.
So now I cracked the next one. My library is full. The maximum number of songs that can be stored in the library is 10.000 and not one more.
If they wanted more money for the additional ressources, I'd even understand that. Yes, the suggestion calculations become more expensive, I do know that. And I would even pay for that. But there is no such option.
Instead, the company is making the most customer hostile decisions I could imagine.
Even though the competition proves that a multiple of such a limit is not a problem at all (Google Music: 50.000 songs / Apple Music: 100.000 songs).
And you have to create a new account when you move? That's hard to beat for impudence, especially wigh regard of the fact that no migration service is provided, so a person like me would spend a long time transferring all the stored music and playlists.
I'm not even sure it's complying with European law not to be able to see your address online, let alone change it.
And all of that because they know they can afford it anyway, since although the competition is a lot better on that score, they simply can't keep up in the matter of spectrum and algorithms.
And if I can only take 70% of my music with me when I change the service, I can just as well delete 3.000 songs from my library and stay with Spotify.
What a fucking wreck. I really don't get it.8 -
I'm basically an introvert. I've lived most of my childhood with my mother alone with few friends and the ones I had betreyed me real hard at some point. So how come that I'm now founding a startup, speaking in front of a big audience at meetups and have a nearly 60/40 work/social life?
At some point I decided to be more social. Making that decision alone had a huge impact. It took several years though, to implement this decision. Some day I cut off my draining social bounds and found energyzing relationships by simple doing what I wanted to do. I started to reach out and experiment with a lot of hobbies like bow casting and going to board games evenings. I made little steps. E.g bow casting is a sport where you don't necessarily interact with others within the sport, but you have the opportunity to interact about the sport.
A physiologist once told me the neat fact, that being an introvert is just an attribute that does not contradict the skill being socially involved. So it is possible with training and decisions to learn how to be more extroverted. For in introvert this is more exhausting and challanging, but definitely possible.
So today I balance my social life and work by visiting meetups, playing board games and all that stuff that makes me comfortable. There I get to know people with similar interests and similar struggle ;)
At some point the work was just not enough to be happy, I identified my missing social interactions as the root cause so I decided to change that.
On the other hand, don't think you have to be social. Don't think you have to care about everything others expect you to care about. It's bullshit. Don't care about that. Rather ask yourself what you want for yourself. Certainly a social life is part of that, but you alone decide how this will look like. E.g. After I decided hey I just don't give a fuck if you like cuddling your cat and when it's birthday is, several months or years later I started to be interested in these things from my own, not because some dippshit society construct expects me to care about it.
So to wrap up:
Introvert is an attribute, social life is a skill.
Deciding for yourself and giving a fuck about others is key.
It takes a shit load of time. But it works. -
First company:
- being sat at an office that didn't have chairs with proper back support. It would kill my back every day. Like sitting on a bar stool coding.
- not having access to basic resources (cafeteria, salary bonuses)
- being seriously underpaid ($200 under)
- not having an IT process pipeline (yeah, this is a huge one): no JIRA, no git, no VCS, no continuous integration, etc. I fucking spend 45% of the time fixing coding-unrelated shit.
Second company (very aggravating):
- dumb frontend bitch and privileged colleague who both kept telling me months on end to shut up and who wouldn't listen to my advice on anything, while my advice would actually help the company advance in productive ways. The key here is being told to shut up while stagnating. i.e. dead end job.
- people advancing in the company based on nepotism and favoritism, based on having tits and ass, rather than skills and independence.
- pointlessssssssss meetings where decisions are made solely based on the opinion of Mr. favorite senior dev. The rest just sits there like a bunch of sad saps and yay-nodders. Incompetent PO's who "would like to hear your input" but then when you give it, they completely dismiss you.
- pointlessssssssss monthly meetings with stakeholders, where the dev teams do nothing but clash and act like pussies in front of the PM just to get in his favor, but behind scenes continue to make the same mistakes and telling the CEO everything is fine. Goodness, how can it get more unproductive.
- completely antisocial and nepotistic 'colleagues' who won't even talk to you, let alone smile at you or be friendly. You saying good morning and them pretending you're vapor that doesn't exist. Go go company atmosphere! Especially during lunch, those are the worst times. Imagine sitting at lunch where everyone looks like you killed their dog and the rest is huddled up in little high school groups.
What else? The incessant and pointless smalltalk that makes me want to bang my head against the wall. Talking about dogs, kids, what show was on tv last night. The fuck man, do you have a brain?!
Third company:
- HR bitches who think they are the shit and developers are antisocial, helpless misfits, but they work with computers and they don't even fucking know what a status bar is! The irony!
- forced socializing and stigmatization for the opposite. Imagine coming into a company and you don't say good morning. Should that be a problem? No. Instead, everyone starts dogging on you and hating you just because you didn't smile in their faces and said: hiiiiiiiiiiii how did you sleep? Did you feed your dog? Fuck you.
Elliot (Mr. Robot): "Wouldn't it be awesome if there was a mute button for life?" -boop, boop, boop, boop...- Ahh.. there.. that's much better."
- CEO's sucking up to you but when it comes to salary increase, they say shit like: "Ahhh ya know, it's kinda difficult." Yet another dead end job.2 -
Unnamed hacking game - "terminal" graphics
-Multiplayer. Last man standing.
-Like a tower-defence game but technical
You work for a company that has outsourced their technical department to Bykazistan, a country with good internet and bad laws. On one hand, labor is very cheap! There are no pesky laws protecting workers, so you don't need to pay them what they're worth. Phew. However, there are also no laws against cyber crime. But for a start-up like you, the risk is worth the reward!
...which would be great! If you were the only company with that idea. As it turns out, you aren't. All of your competitors also recently outsourced to Bykazistan, and that could be an issue.
You would be afraid, but you are a hardened businessman. You are familiar with the cut-throat nature of the business world and where others see risk, you see opportunity. Let the games begin.
Your mission is to protect your ciritical assets at all costs, eliminate your opponents, and make ciritical financial decisions - all while maintaining your uptime!
Build a botnet and attack your competition to decrease their uptime and disable their attacks. Port scan your opponents to learn more about their network, but beware of honeypots! Initiate devastating social engineering attacks - and train your employees against them! Brute-force their credentials, and strengthen your own.
Make sure to keep your software patched...5 -
dev, ~boring
This is either a shower thought or a sober weed thought, not really sure which, but I've given some serious consideration to "team composition" and "working condition" as a facet of employment, particularly in regard to how they translate into hiring decisions and team composition.
I've put together a number of teams over the years, and in almost every case I've had to abide by an assemblage of pre-defined contexts that dictated the terms of the team working arrangement:
1. a team structure dictated to me
2. a working temporality scheme dictated to me
3. a geographic region in which I was allowed to hire
4. a headcount, position tuple I was required to abide by
I've come to regard these structures as weaknesses. It's a bit like the project management triangle in which you choose 1-2 from a list of inadequate options. Sometimes this is grounded in business reality, but more often than not it's because the people surrounding the decisions thrive on risk mitigation frameworks that become trickle down failure as they impose themselves on all aspects of the business regardless of compatibility.
At the moment, I'm in another startup that I have significantly more control over and again have found my partners discussing the imposition of structure and framework around how, where, why, who and what work people do before contact with any action. My mind is screaming at me to pull the cord, as much as I hate the expression. This stems from a single thought:
"Hierarchy and structure should arise from an understanding of a problem domain"
As engineers we develop processes based on logic; it's our job, it's what we do. Logic operates on data derived from from experiments, so in the absence of the real we perform thought experiments that attempt to reveal some fundamental fact we can use to make a determination.
In this instance we can ask ourselves the question, "what works?" The question can have a number contexts: people, effort required, time, pay, need, skills, regulation, schedule. These things in isolation all have a relative importance ( a weight ), and they can relatively expose limits of mutual exclusivity (pay > budget, skills < need, schedule < (people * time/effort)). The pre-imposed frameworks in that light are just generic attempts to abstract away those concerns based on pre-existing knowledge. There's a chance they're fine, and just generally misunderstood or misapplied; there's also a chance they're insufficient in the face of change.
Fictional entities like the "A Team," comprise a group of humans whose skills are mutually compatible, and achieve synergy by random chance. Since real life doesn't work on movie/comic book logic, it's easy to dismiss the seed of possibility there, that an organic structure can naturally evolve to function beyond its basic parts due to a natural compatibility that wasn't necessarily statistically quantifiable (par-entropic).
I'm definitely not proposing that, nor do I subscribe to the 10x ninja founders are ideal theory. Moreso, this line of reasoning leads me to the thought that team composition can be grown organically based on an acceptance of a few observed truths about shipping products:
1. demand is constant
2. skills can either be bought or developed
3. the requirement for skills grows linearly
4. hierarchy limits the potential for flexibility
5. a team's technically proficiency over time should lead to a non-linear relationship relationship between headcount and growth
Given that, I can devise a heuristic, organic framework for growing a team:
- Don't impose reporting structure before it has value (you don't have to flatten a hierarchy that doesn't exist)
- crush silos before they arise
- Identify needed skills based on objectives
- base salary projections on need, not available capital
- Hire to fill skills gap, be open to training since you have to pay for it either way
- Timelines should always account for skills gap and training efforts
- Assume churn will happen based on team dynamics
- Where someone is doesn't matter so long as it's legal. Time zones are only a problem if you make them one.
- Understand that the needs of a team are relative to a given project, so cookie cutter team composition and project management won't work in software
- Accept that failure is always a risk
- operate with the assumption that teams that are skilled, empowered and motivated are more likely to succeed.
- Culture fit is a per team thing, if the team hates each other they won't work well no matter how much time and money you throw at it
Last thing isn't derived from the train of thought, just things I feel are true:
- Training and headcount is an investment that grows linearly over time, but can have exponential value. Retain people, not services.
- "you build it, you run it" will result in happier customers, faster pivoting. Don't adopt an application maintenance strategy
/rant2 -
Does anyone get the feeling that as they become more senior, they care less about meeting "best practices" and more of just "good enough"?
Best practices being everything in those books about TDD, unit testing, design patterns, design artifacts.
Good enough: enough so it won't blow up in prod, some tests but not 80-90%, some docs. Basically not like those public docs, open source projects/frameworks where function is covered
When I first started professionally, I was all about efficiency, good design, reducing technical debt, clean code.
But now, I look at problems and instinctively I may make these decisions but I don't really think about it much. First goal is to just get something working, clean it up later... Maybe.6 -
The company I work for just screwed me out of a bonus while negotiating my salary after I handed in my notice. I really don't understand the logic of large companies that make these decisions that save them a few hundred bucks only to tarnish their reputation and assure that people like me will never EVER come back to work for them.
Can't wait for my notice period to be up!5 -
Too many to count, but this one useless meeting stands out the most.
I was working as an outside dev for software corporation. I was hired as an UI dev although my skill set was UI/engineer/devops at the time.
we wrote a big chunk of 'documentation' (read word files explaining features) before the project even started, I had 2 sprints of just meetings. Everybody does nothing, while I set up the project, tuned configs, added testing libraries, linters, environments, instances, CI/CD etc.
When we started actual project we had at least 2 meetings that were 2-3 hours long on a daily basis, then I said : look guys, you are paying me just to sit here and listen to you, I would rather be working as we are behind the schedule and long meetings don't help us at all.
ok, but there is that one more meeting i have to be on.
So some senior architect(just a senior backend engineer as I found out later) who is really some kind of manager and didn't wrote code for like 10 years starts to roast devs from the team about documentation and architectural decisions. I was like second one that he attacked.
I explained why I think his opinion doesn't matter to me as he is explaining server side related issues and I'm on the client-side and if he wants to argue we can argue on actual client-side decisions I made.
He tried to discuss thinking that he is far superior to some noob UI developer (Which I wasn't, but he didn't know that).
I started asking some questions and soon he felt lost and offended. We ended that discussion with conclusion that I made my own decisions on the client-side. That lasted less than 10 minutes.
So I just sit there and eat popcorn for next 4 and half hours listening to their unnecessary discussions where some angry manager that did programing decades ago wanted to show that we are all noobs and stupid.
what a sad human being.
what a waste of time, but hey I got payed for this 5 hour meeting.1 -
Data Disinformation: the Next Big Problem
Automatic code generation LLMs like ChatGPT are capable of producing SQL snippets. Regardless of quality, those are capable of retrieving data (from prepared datasets) based on user prompts.
That data may, however, be garbage. This will lead to garbage decisions by lowly literate stakeholders.
Like with network neutrality and pii/psi ownership, we must act now to avoid yet another calamity.
Imagine a scenario where a middle-manager level illiterate barks some prompts to the corporate AI and it writes and runs an SQL query in company databases.
The AI outputs some interactive charts that show that the average worker spends 92.4 minutes on lunch daily.
The middle manager gets furious and enacts an Orwellian policy of facial recognition punch clock in the office.
Two months and millions of dollars in contractors later, and the middle manager checks the same prompt again... and the average lunch time is now 107.2 minutes!
Finally the middle manager gets a literate person to check the data... and the piece of shit SQL behind the number is sourcing from the "off-site scheduled meetings" database.
Why? because the dataset that does have the data for lunch breaks is labeled "labour board compliance 3", and the LLM thought that the metadata for the wrong dataset better matched the user's prompt.
This, given the very real world scenario of mislabeled data and LLMs' inability to understand what they are saying or accessing, and the average manager's complete data illiteracy, we might have to wrangle some actions to prepare for this type of tomfoolery.
I don't think that access restriction will save our souls here, decision-flumberers usually have the authority to overrule RACI/ACL restrictions anyway.
Making "data analysis" an AI-GMO-Free zone is laughable, that is simply not how the tech market works. Auto tools are coming to make our jobs harder and less productive, tech people!
I thought about detecting new automation-enhanced data access and visualization, and enacting awareness policies. But it would be of poor help, after a shithead middle manager gets hooked on a surreal indicator value it is nigh impossible to yank them out of it.
Gotta get this snowball rolling, we must have some idea of future AI housetraining best practices if we are to avoid a complete social-media style meltdown of data-driven processes.
Someone cares to pitch in?14 -
Just need to vent, so here goes:
Fuck doing cutting edge projects for great glory, low budgets and tight deadlines. I'm tired, burnt out and just don't give a shit anymore.
I got promoted to lead dev and thought my fortune was made but what it really meant was just: Here solve all these bullshit bugs that the rest of the team can't figure out and oh we are also taking this single app you guys made and scaling it globally. You have half a year to figure that out. You handle the devops.... sigh
Fuck that noise.
Honestly i just feel like quitting and finding a nice specialist place, with a cap of at max Senõr developer, no more being the one making the big decisions for me, rather just diving into certain areas and coding the fuck out of that. Maybe some teaching too, i like that.
Anyway, won't happen right now, i need the salary. My wife just graduated and can't find a job what with a certain flu fucking over the economy, so I am stuck here for now.2 -
In a meeting yesterday working through our WebAPI coding standards, starting from File -> New project..etc..etc.. and ironing out some of the left-or-right decisions so we can have a consistent coding style, working in a meeting room with an overhead projector and sharing keyboard around with one another.
Then we hit the routing 'rules' in the WebApiConfig, "api/{controller}/{id}"…
DevMgr: "Do we need the 'api' prefix? It seems redundant."
Ralph: "Yes it's needed. Prefixing the controllers with 'api' is industry best practice. Otherwise, how is anyone to know it's a web api"
Prancer: "Yea, it's part of the REST standard."
Me: "I don't think so. That is only part of the Asp.Net routing rule. We can put anything we want or take anything out."
DevMgr: "Yea, it looks silly. All the new services are going to be business process specific."
Ralph: "That's how everyone does it. It's kind of the point of why REST services are called WebApi"
Prancer: "What's the point of doing any of this work if we're not going to follow industry standards."
Me: "I understand if the service is part of larger web site, but we're developing standalone services. Prefixing routes with 'api' is redundant. I mean who are these 'everyone' you're talking about?"
<ralph rolls his eyes>
Ralph: "Lets see …uhhh… Netflix?. They're kinda a big deal."
Me: "Like I said, it's an integral part of their site and the services they provide. That's fine. I'm talking about the 12 other 3rd party services we integrate with. None of them have 'api' on any of their routes."
Prancer: "We're talking about serious web services."
Me: "Last time I checked, UPS is a big and serious service."
Ralph: "Their services are a fracking joke" – he didn't say fracking.
Me: "Our payroll system, our billing system, billion dollar companies, didn't have '/api' prefix anywhere. Heck, even that free faxing service we used for a while was a dead-simple routing path."
<I take the keyboard away from Ralph, remove the 'api' from the route.>
Me: "There. Done. Now, lets talk about error handling.."
Rest of the meeting Ralph and Prancer don't say much of anything, arms crossed…I swear Ralph looked like he was going to cry.
This morning I catch my boss…
Me: "What did you think of the meeting? I thought Ralph was going to take a swing at me when I took the keyboard away from him."
DevMgr: "Oh yes…I almost laughed out loud….blows my freaking mind how worked up people get about crap that doesn't matter. Api..or not…who the frack cares. Just make it consistent"
Me: "Exactly…I didn't care either way, but I enjoyed calling out that nonsense."
DevMgr: "Yes..waaay too much."
If I didn't call them on their BS and the 'standard' allowed to continue, I can bet my paycheck when the subject comes up in a few months (another mgr asks 'isn't this api prefix redundant?') Ralph and Prancer will be the first to say "Yea, its stupid. We fought really hard to remove it from the standard...its not our fault...its <insert scapegoat> fault." -
all of them. countless wasted hours.
as fate decided to turn me from $random-dev-geek into "the guy that calls the shots in tech", one of my earliest decisions was to automate formatting.
everywhere, automated at CI.
gofmt was an inspiration for the industry.
js?/ts? use prettier
C++? use ClangFormat
etc.
always default settings.
enforced by pre-commit hooks and CI.
never a single argument about bracket style, I don't care if someone likes single or double quotes better.
"fucks given" counter is fixed at 0.
everybody prefers it (ok, sometimes after a while sometimes)
of course there is still some more conventions to do for us humans.
IMHO the most critical ones.
like naming or even casing (camel, snake, kebab, - which one works where), but taking out most of the "so what" decisions takes discussions to a much more resonable level.6 -
Corporations... huge, old, monolithic
We want you to automate but will do everything we can to prevent you from getting resources to do it. Restricting policies, decisions by managers on "what they do not want". No procedures on how to achieve the result within policies. Half the business lives in a gray zone and sea of policy exceptions.
We finally decided to get at least Azure subscription instead of trying to develop similar framework internally, but wE DoNT WANt YOu to dEPlOY thERE As WE Don't cOnSIDEr it sAfE ENough.
Like pissing against wind.6 -
So, i've noticed something:
- My grandfather drinks nothing but the water.
- My grandmother recently increased her water intake due to meds making her retain water way less
- My dad has been drinking more water in an attempt to be healthier.
- I don't drink the house water without boiling it first, as i'm the only one that thinks it smells and tastes like wet dog smells, aside from with like kool-aid or similar where the taste is masked enough to not be detectable.
Well, what does this matter? I'll tell you:
- My grandfather went from fine aside from minor balance issues to totally mentally fried in 24 hours.
- My grandmother is spacing out while driving and falling more and more.
- My dad went from fine to overwhelmed by basic decisions in a couple months of moving here.
- I've noticed a slight decline in my mental health, but this is probably from issues i've had with my college and general stress.
Correlation ≠ causation, but... it's usually-unfiltered water from a well placed uncomfortably close to a lagoon, and it was never tested for safety before use (despite my protests.)19 -
Sorry, need to vent.
In my current project I'm using two main libraries [slack client and k8s client], both official. And they both suck!
Okay, okay, their code doesn't really suck [apart from k8s severely violating Liskov's principle!]. The sucky part is not really their fault. It's the commonly used 3rd-party library that's fucked up.
Okhttp3
yeah yeah, here come all the booos. Let them all out.
1. In websockets it hard-caps frame size to 16mb w/o an ability to change it. So.. Forget about unchunked file transfers there... What's even worse - they close the websocket if the frame size exceeds that limit. Yep, instead of failing to send it kills the conn.
2. In websockets they are writing data completely async. Without any control handles.. No clue when the write starts, completes or fails. No callbacks, no promises, no nothing other feedback
3. In http requests they are splitting my request into multiple buffers. This fucks up the slack cluent, as I cannot post messages over 4050 chars in size . Thanks to the okhttp these long texts get split into multiple messages. Which effectively fucks up formatting [bold, italic, codeblocks, links,...], as the formatted blocks get torn apart. [didn't investigate this deeper: it's friday evening and it's kotlin, not java, so I saved myself from the trouble of parsing yet unknown syntax]
yes, okhttp is probably a good library for the most of it. Yes, people like it, but hell, these corner cases and weird design decisions drive me mad!
And it's not like I could swap it with anynother lib.. I don't depend on it -- other libs I need do! -
Working with the Android SDK after about a decade of mostly avoiding ever having to do so directly...and fucking hell, nothing has changed.
It's still obtuse as fuck, you constantly have to provide contexts to operations which can't need them (there's only one fucking keyboard to close), and whilst they have added some new stuff which helps like Material, the APIs are just as mental, the setup just as elaborate and manual - and they don't seem to have deprecated anything along the way, so fifteen years of random software design decisions cohabit awkwardly together like the Bucket family.
I don't really mind Java, it's just long-winded C - but boy has it found its niche here. Your code is more boilerplate than not until you've written more than you'll mostly ever need to for an app.
At this point I'm just laughing when I come across another Stack Overflow solution for a trivial operation that involves writing an entire class. I would try Kotlin but this isn't a new project, and I'm not pissing another ingredient into this hot mess.
Alright, Android Studio is an improvement on Eclipse, but that's not really saying much.3 -
I need to rant about life decisions, and choosing a dev career probably too early. Not extremely development related, but it's the life of a developer.
TL;DR: I tried a new thing and that thing is now my thing. The new thing is way more work than my old thing but way more rewarding & exciting. Try new things.
I taught myself to program when I was a kid (11 or 12 years old), and since then I have always been absolutely sure that I wanted to be a games programmer. I took classes in high school and college with that aim, and chose a games programming degree. Everything was so simple, nail the degree, get a job programming something, and take the first games job that I could and go from there.
I have always had random side hobbies that I liked to teach myself, just like programming. And in uni I decided that I wanted to learn another language (natural, not programming) because growing up in England meant that I only learned English and was rarely exposed to anything else. The idea of knowing another fascinated me.
So I dabbled in a few different languages, tried to find a culture that seemed to fit my style and attitude to life and others, and eventually found myself learning Korean. That quickly became something I was doing every single day, and I decided I needed to go to Korea and see what life there could be like.
I found out that my university offered a free summer school program for a couple of weeks, all I had to pay for was the flights. So a few months later I was there and it was literally the best thing I'd done in my life to that point. I'd found two things that made me feel even better than the idea of becoming the games programmer I'd always wanted to be. Travelling and using my other language to communicate with people that I couldn't in English. At that point I was still just a beginner, but even the simple conversations with people who couldn't speak English felt awesome.
So when I returned home, I found that that trip had completely thrown a spanner into my life plan. All I could think about after that was improving my language skills and going back there for as long as possible. Who knows what to do.
I did exactly that. I studied harder than I'd ever studied for anything and left the next year to go and study in Korea, now with intermediate language skills, everyday conversations no longer being a problem at all.
Now I live here, I will be here for the next year and I have to return to England for one year to finish my degree. Then instead of having my simple plan of becoming a developer, I can think of nothing I want to do less than just stay in England doing the same job every day, nothing to do with language. I need to be at least travelling to Korea, and using my language skills in at least some way.
The current WIP plan is to take intensive language classes here (from next week, every single weekday), build awesome dev side projects and contribute to open source stuff. Then try to build a life of freelance translation/interpreting/language teaching and software development (maybe here, maybe Korea).
So the point of this rant is that before, I had a solid plan. Now I am sat in my bed in Korea writing this, thinking about how I have almost no idea how I'm going to build the life that I want. And yet somehow, the uncertainty makes this so much more exciting and fulfilling. There's a lot more worrying, planning and deciding to do. But I think the fact that I completely changed my life goals just through a small decision one day to satisfy a curiosity is a huge life lesson for me. And maybe reading this will help other people decide to just try doing something different for once, and see if your life plan holds up.
If it does, never stop trying new things. If it doesn't (like mine), then you now know that you've found something that you love as much as or even more that your plan before. Something that you might have lived your whole life never finding.
I don't expect many people to read this all, but writing it here has been very cathartic for me, and it's still a rant because now I have so much more work and planning to do. But it's the good kind of work.
Things aren't so simple now, but they're way more worth it.3 -
Many years ago, when I moved from a semi-experienced developer to an absolute beginner project manager at another company, my very first project was an absolute clusterfuck.
The customer basically wanted to scrape signups to their EventBrite events into their CRM system. The fuckery began before the project even started, when I was told my management that we HAD to use BizTalk. It didn't matter that we had zero experience with BizTalk, or that using BizTalk for this particular project was like using a stealth bomber to go down to the shops for a bottle of tequila (that's one for fans of Last Man on Earth). It's designed to be used by an experienced team of developers, not a small inexperienced 1-person dev team I had. The reason was for bullshit political reasons which I wasn't really made clear on (I suspect that our sales team sold it to them for a bazillion pounds, and they weren't using it for anything, so we had to justify us selling it to them by doing SOMETHING with it). And because this was literally my first project, I was young and not confident at all, and I wanted to be the guy who just got shit done, I didn't argue.
Inevitably, the project was a turd. It went waaay over budget and time, and didn't work very well. I remember one morning on my way to work seriously considering ploughing my car into a ditch, so that I had a good excuse not to go into work and face that bullshit project.
The good thing is that I learned a lot from that. I decided that kind of fuckery was never going to happen again.
A few months later I had an initial meeting with a potential customer (who I was told would be a great customer to have for bullshit political reasons) - I forget the details but they essentially wanted to build a platform for academic researchers to store data, process it using data processing plugins which they could buy, and commersialise it somehow. There were so many reasons why this was a terrible idea, but when they said that they were dead set on using SharePoint (SharePoint!!!) as the base of the platform, I remembered my first project and what happened.
I politely explained my technical and business concerns over the idea, and reasons why SharePoint was not a good fit (with diagrams and everything), suggested a completely different technology stack, and scheduled another meeting so they could absorb what I had said and revisit. I went to my sales and head of development and basically told them to run. Run fast, and run far, because it won't work, these guys are having some kind of fever dream, it's a clusterfuck in the making, and for some reason they won't consider not using SP.
I never heard from them again, so I assume we dropped them as a potential client. It felt amazing. I think that was the single best thing I did for that company.
Moral of the story: when technology decisions are made which you know are wrong, don't be afraid to stand up and explain why.3 -
So, I've had a personal project going for a couple of years now. It's one of those "I think this could be the billion-dollar idea" things. But I suffer from the typical "it's not PERFECT, so let's start again!" mentality, and the "hmm, I'm not sure I like that technology choice, so let's start again!" mentality.
Or, at least, I DID until 3-4 months ago.
I made the decision that I was going to charge ahead with it even if I started having second thoughts along the way. But, at the same time, I made the decision that I was going to rely on as little external technology as possible. Simplicity was going to be the key guiding light and if I couldn't truly justify bringing a given technology into the mix, it'd stay out.
That means that when I built the front end, I would go with plain HTML/CSS/JS... you know, just like I did 20+ years ago... and when I built the back end, I'd minimize the libraries I used as much as possible (though I allowed myself a bit more flexibility on the back end because that seems to be where there's less issues generally). Similarly, any choice I made I wanted to have little to no additional tooling required.
So, given this is a webapp with a Node back-end, I had some decisions to make.
On the back end, I decided to go with Express. Previously, I had written all the server code myself from "first principles", so I effectively built my own version of Express in other words. And you know what? It worked fine! It wasn't particularly hard, the code wasn't especially bad, and it worked. So, I considered re-using that code from the previous iteration, but I ultimately decided that Express brings enough value - more specifically all the middleware available for it - to justify going with it. I also stuck with NeDB for my data storage needs since that was aces all along (though I did switch to nedb-promises instead of writing my own async/await wrapper around it as I had previously done).
What I DIDN'T do though is go with TypeScript. In previous versions, I had. And, hey, it worked fine. TS of course brings some value, but having to have a compile step in it goes against my "as little additional tooling as possible" mantra, and the value it brings I find to be dubious when there's just one developer. As it stands, my "tooling" amounts to a few very simple JS scripts run with NPM. It's very simple, and that was my big goal: simplicity.
On the front end, I of course had to choose a framework first. React is fine, Angular is horrid, Vue, Svelte, others are okay. But I didn't want to bother with any of that because I dislike the level of abstraction they bring. But I also didn't want to be building my own widget library. I've done that before and it takes a lot of time and effort to do it well. So, after looking at many different options, I settled on Webix. I'm a fan of that library because it has a JS-centric approach. There's no JSX-like intermediate format, no build step involved, it's just straight, simple JS, and it's powerful and looks pretty good. Perfect for my needs. For one specific capability I did allow myself to bring in AnimeJS and ThreeJS. That's it though, no other dependencies (well, at first, I was using Axios because it was comfortable, but I've since migrated to plain old fetch). And no Webpack, no bundling at all, in fact. I dynamically load resources, which effectively is code-splitting, and I have some NPM scripts to do minification for a production build, but otherwise the code that runs in the browser is what I actually wrote, unlike using a framework.
So, what's the point of this whole rant?
The point is that I've made more progress in these last few months than I did the previous several years, and the experience has been SO much better!
All the tools and dependencies we tend to use these days, by and large, I think get in the way. Oh, to be sure, they have their own benefits, I'm not denying that... but I'm not at all convinced those benefits outweighs the time lost configuring this tool or that, fixing breakages caused by dependency updates, dealing with obtuse errors spit out by code I didn't write, going from the code in the browser to the actual source code to get anywhere when debugging, parsing crappy documentation, and just generally having the project be so much more complex and difficult to reason about. It's cognitive overload.
I've been doing this professionaly for a LONG time, I've seen so many fads come and go. The one thing I think we've lost along the way is the idea that simplicity leads to the best outcomes, and simplicity doesn't automatically mean you write less code, doesn't mean you cede responsibility for various things to third parties. Those things aren't automatically bad, but they CAN be, and I think more than we realize. We get wrapped up in "what everyone else is doing", we don't stop to question the "best practices", we just blindly follow.
I'm done with that, and my project is better for it! -
company lands huge enterprise project
promises client to deliver it in MIN_TIME_REQUIRED/4
No architect, no technical lead, no seniors, no designer just juniors and interns in the project.
all the project time wasted by manager making shit decisions and not giving a fuck what devs have to say about how project will be disaster if goes like this.
Now the project is officially under raging fire
Boss to dev : What happend to the project. Why are things not working?
Dev: You made decisions not us.
Boss: I don't buy it. Work 24hrs until this is done.
Dev: F*** you and this project. I am resigning. -
---Startup Rant---
Being a senior developer doesn't grant the privilege to join a team and starting a drama out loud that everything is bad and you don't like it.
First, if everything is perfect there is no need to hire you.
Second, think about the value that you can bring to the team instead of making them feel bad, how can you prepare an improvement plan and start to learn the factors and reasons behind those decisions.
What's funny, it that the same guy after a couple of months starts introducing bad fixes and he says it's ok for the moment, it's not good but it's okayish, I wish I had a time machine for those developers!1 -
Making this birthday card for 2 hours for a family. My head is already cracking because they want frozen movie design in their poster.
After fiddling the whole poster in photoshop for hours according to their decisions, one of them suddenly came up, changed everyone's mind and said they don't like the current poster and they will start something completely new.
FFFFDUFUFJXKXKXKXKFUDJDXJ -
Idea: postpone risky decisions to the 1st of April and say it was a joke if people don't like it.
~~Or keep them to troll people even harder~~ -
From perfectly working scrum team to... Don't know what it is now...
Long story short - our SM left company and our team have ongoing "reorganization", our tester leaving at the end of this month, probably we will be out of tester for next month...
I don't mean reorganization, it's normal thing, but... It looks like it's slowly collapsing under bad head decisions (one of them is the reason why our tester is leaving)... Multiple "side" projects / tasks for ppl in team and problems with delivering sprint tasks on time because of it, context switching etc.
I fucking like this project, it gives me much opportunities to learn new things and design new features - it's up to us how we will implement it. Client is satisfied with our work and we worked for their trust for long time. But if things will be going same way as now, we will probably lose it.
How do you think, is it worth to try stay with this project? Or should I update CV just in case?6 -
I was not happy with the way my team lead made those technical decisions. I couldn't do much about it. Hit with frustration, I switched job.
What a coincidence, my new employer is exactly his old employer. Although I liked the company with my impression from the interview, knowing this fact made me nervous. What if this is the place that bred him into what he is today?...
Turned out the reality is not cruel. I'm joining a team that is formed way after he left. And this new team is expected to bring changes to the old-fashioned existing product (or simply a revamp/remake if you call it).
And it's interesting for me to now come to understand the poor decisions he has made. I said I "understand". This does not mean I agree with him now. His approach makes sense when I look at the old-fashion product I am working on. But it still feels wrong in many ways for the product he is now in charge of.
There, I witness that someone with experience is not necessarily smart.
This is the same guy who said "That's why I don't like to catch exception."
FYI https://devrant.com/rants/2420797/...1 -
1) Learning little to nothing useful in formal post-secondary and wasting tons of time and money just to have pain and suffering.
"Let's talk about hardware disc sectors divisions in the database course, rather than most of you might find useful for industry."
"Lemme grade based on regurgitating my exact definitions of things, later I'll talk about historical failed network protocols, that have little to no relevance/importance because they fucking lost and we don't use them. Practical networking information? Nah."
"Back in the day we used to put a cup of water on top of our desktops, and if it started to shake a lot that's how you'd know your operating system was working real hard and 'thrashing' "
"Is like differentiation but is like cat looking at crystal ball"
"Not all husbands beat their wives, but statistically...." (this one was confusing and awkward to the point that the memory is mostly dropped)
Streams & lambdas in java, were a few slides in a powerpoint & not really tested. Turns out industry loves 'em.
2) Landed my first student job and get shoved on an old legacy project nobody wants to touch. Am isolated and not being taught or helped much, do poorly. Boss gets pissed at me and is unpleasant to work with and get help from. Gets to the point where I start to wonder if he starts to try and create a show of how much of a nuisance I am. He meddle with some logo I'm fixing, getting fussy about individual pixels and shades, and makes a big deal of knowing how to use GIMP and how he's sitting with me micromanaging. Monthly one on one's were uncomfortable and had him metaphorically jerking off about his lifestory career wise.
But I think I learned in code monkey industry, you gotta be capable of learning and making things happen with effectively no help at all. It's hard as fuck though.
3) Everytime I meet an asshole who knows more and accomplish than I do (that's a lot of people) with higher TC than me (also a lot of people). I despair as I realize I might sound like that without realizing it.
4) Everytime I encounter one of my glaring gaps in my knowledge and I'm ashamed of the fact I have plenty of them. Cargo cult programming.
5) I can't do leetcode hards. Sometimes I suck at white board questions I haven't seen anything like before and anything similar to them before.
6) I also suck at some of the trivia questions in interviews. (Gosh I think I'd look that up in a search engine)
7) Mentorship is nigh non-existent. Gosh I'd love to be taught stuff so I'd know how to make technical design/architecture decisions and knowing tradeoffs between tech stack. So I can go beyond being a codemonkey.
8) Gave up and took an ok job outside of America rather than continuing to grind then try to interview into a high tier American company. Doubtful I'd ever manage to break in now, and TC would be sweet but am unsure if the rest would work out.
9) Assholes and trolls on stackoverflow, it's quite hard to ask questions sometimes it feels and now get closed, marked as dupe, or downvoted without explanation.3 -
So.... My mom became a victim of cyber bullying. And i just feel sad for her. She is an old but smart lady in her 50s and not very used to modern tech and cyber crime.
We follow a (now dead) philosopher (say 'X') as religion, some random stranger came in their local fb group and started shit posting about X like " he is not a god , he is a thief, follow me , bla bla bla" stuff like that..
I don't give 1 qbit to that shitposter or that fight. I am just concerned that my mom (and many others) got so disturbed that she left the work and came home.
Internet is great , free and all, but as long as everyone is allowed to speak everything without caring for a consequence, simpleminded people will keep on getting hurt, evil shitposters will keep on getting fame and people with an unsure mind will keep on making wrong decisions
I can give you numerous examples where a person got the power and fame just because he keep on getting famous for his negetive posts, religious or otherwise. This has to stop, but am not sure how.15 -
I've got a user who keeps asking for weekly updates on a project I'm on and my pm is supposed to interface with them and give them the status. But my pm comes back to me like "so everything is good right?"
When we just talked last week about how it's not and I still have work stoppages. I have status updates written in our ticket tracker for him and he has tons of emails explaining the issue but he always forgets what the status is anyway!
Jesus, having to keep reminding someone of something when the information is right out there for them to grab quickly and easily is bloody annoying. He just neglects this one project! I'd cut out the middleman but I need him because I don't know enough about business rules to make decisions or ignore concerns that crop up in my planning!3 -
Never thought I'd be back here after all these years. But today I thought I would rant about our product owner, who thinks he's priceless to the project. The man walks out of meetings that don't go in his preferred direction. He gets flustered whenever discussions become technical and demands everyone ELI5 the entire thing to him. He clears his throat loudly every time he wants to make himself noticed, like loud grunts of a wild boar. He will find ways to shift blame away and onto others. He does not like being recorded during meetings and does his best to make sure his decisions don't have a paper trail in case they go sour. No paper trail also means he can contradict himself everyday ans get away with it. I wish there was a way to make him resign or switch to a different project. Other managers and even his bosses are already aware of his behavior and yet still no significant changes in his actions or behavior.
-
For what fucking reason the ability to set the date and time programatically has been blocked on Android?!
Why you can create fucking invisible apps that work in the background, mine cryptos, steal your data but they decided that something like that is considered dangerous?
Can anyone give me a logical explanation?
P.S.
There are cases (big pharma companies) where the users don't have access to internet nor a ntp server is available on the local network, so the ability for an app to get the time of a sql server and set it in runtime is crucial, expecially when the user, for security reasons, can't have access to the device settings and change it by himself.
"System apps" can do it, but you would have to change the firmware of a device to sideload an external "System app" and in that case it would lose the warranty.
So, yeah, fucking Google assholes, there are cases where your dumb decisions make the others struggle every other day.
Give more power to third party developers, dumb motherfuckers.
It's not that difficult to ask the user, once, to give the SET_TIME permission.
It was possible in the past...
P.S.2
Windows Mobile 6.5 was a masterpiece for business.
It still could be, just mount better CPUs on PDAs and extend the support. But no, "Android is the future". What a fucking bad future.11 -
I don't care about market cap. Stick your hype-driven business practices up your ass. Infinite growth doesn't exist. I won't read your fucking books and attend your fucking bootcamps and MBAs. You don't have a business model. Selling data is not a business model. Fuck your quick-flip venture capital schemes, and especially fuck your “ethics”.
I will be the first alt-tech CEO. I only care about revenue. The real money, not capitalization bubble vaporware. You don't need a huge fleet of engineers if you're smart about your technology, know how to do architecture, and you're not a feature creep. You don't need venture capital if you don't need a huge fleet of engineers. You don't need to sell data if you don't need venture capital. See? See the pattern here?
My experience allows me to build products on entirely my own. I am fully aware of the limitations of being alone, and they only inspire lean thinking and great architectural decisions. If you know throwing capacity at a problem is not an option, you start thinking differently. And if you don't need to hire anyone, it is very easy to turn a profit and make it sustainable.
If you don't follow the path of tech vaporware, you won't have the problems of tech vaporware, namely distrust of your user base, shitty updates that break everything, and of course “oops, they raised capital, time to leave before things go south”.
A friend of mine went the path I'm talking about, developed a product over the course of four years all alone, reached $10k MRR and sold for $0.8M. But I won't sell. I only care about revenue. If I get to $10k MRR, I will most likely stop doing new features and focus on fixing all the bugs there are and improving performance. This and security patches. Maybe an occasional facelift. That's it. Some products are valued because they don't change, like Sublime Text. The utility tool you can rely on. This is my scheme, this is what I want to do in life. A best-kept secret.
Imagine 100 million users that hate my product but use it because there are no alternatives, 100 people in data enrichment department alone, a billion dollars of evaluation (without being profitable), 10 million twitter followers, and ten VC firms telling me what to do and what data to sell.
Fuck that. I'd rather have one thousand loyal customers and $10k MRR. I'm different, some call it a mental illness, but the bottom line is, my goals are beyond their understanding. They call me crazy. I won't say it was never about the money, of course it was, but inflating your evaluation is not “money”. But the only thing they have is their terrible hustle culture lives and some VC street wisdom, meanwhile I HAVE products, it is on record on my PH. I have POTDs, I have a fucking Golden Kitty nomination on health and fitness for a product I made in one day. Fuck you.7 -
Today, I have installed/uninstalled a combination of [windows 7, arch linux, dual-boot] a total of 9 times...
I wouldn't be surprised if my 120G SSD fails next week
It all started when I had to whip up a GUI-wrapped youtube-dl based program for a windows machine.
Thinking a handy GUI python library will get it done in no time, I started right away with the Kivy quick-start page in front of me.
Everything seemed to be going fine, until I decided it would be "wise" to first check if I can run Kivy on said windows machine.
Here I spent what felt like a day (5 hours) trying to install core pip modules for kivy.. only before realizing my innocent cygwin64 setup was the reason everything was failing, and that sys.platform was NOT set to "win32" (a requirement later discovered when unpacking .whl files)
"Okay.. you know what? Fuck........ This."
In a haze of frustration, I decided it was my fault for ever deciding to do Python on windows, and that "none of this would've happened if I were installing pip modules on a Linux terminal"...
I then had the "brilliant" idea of "Why don't I just use Linux, and make windows a virtual machine within, for testing."
And so I spent the next hour getting everything set up correctly for me get back to programming.... And so I did.
But uh... you're doing GUI stuff, right? -> Yeah...
And you uh.. Kivy uses OpenGL on windows, doesn't it? -> Yeah..?
OpenGL... 2.
-> Fuck.
That's when I realized my "brilliant" idea, was actually a really bad prank. Turns out.. I needed a native windows environment with up-to-date non-virtual graphics drivers that supported at least OpenGL2 for Kivy GUI programs!
Something I already had from square 1.
And at this point, it hurts to even sigh knowing I wasted hours just... making... poor decisions, my very first one being cygwin64 as a substitution for windows cmd.
But persistent as any programmer should be in order to succeed, I dragged my sorry ass back to the computer to reinstall windows on the actual hardware... again.
While the windows installer was busy jacking off all over my precious gigabytes (why does it need that much spaaace for a base install??? fuck.). I had "yet another brilliant idea" YABI™
Why not just do a dual-boot? That way, you have the best of both worlds, you do python stuff in Linux, and when it's time to build and test on the target OS, you have a native windows environment!
This synthetic harmony sounded amazing to the desperate, exhausted, shell of a man that I had become after such a back-breaking experience with cygwin
Now that my windows platter with a side of linux was all set-up and ready-to-go, I once again booted up windows to test if Kivy even worked.
And... It did!
And just as I began raising my victory flags, I suddenly realized there was one more thing I had to do, something trivial, should take me "no time" to do, being in a native windows environment and all.................... -.- (sigh)
I had to make sure it compiles to a traditional exe...
Not a biggy, right? Just find one of those py2exe—sounding modules or something, and surprisingly enough, there was indeed a py2exe—sounding module, conveniently named... py2exe.
Not a second thought given, I thought surely this was a good enough way of doing it, just gonna look up the py2exe guide and...
-> 3 hours later + 1 extra coffee
What do you meeeeean "module not found"? Do I need to install more dependencies? Why doesn't it say so in the DAMN guide? Wait I don't? Why are you showing me that error message then????
-------------------------------
No. I'm not doing this.
I shut off my computer and took a long... long.. break.
Only to return sometime the next day and end up making no progress, beating my SSD with more OS installs (sometimes with no obvious reason to do so).
Wondering whether I should give up Kivy itself as it didn't seem compatible with py2exe.. I discovered pyInstaller, which seemed to be the way Kivy wants exe's to be made on windows..
Awesome! I should've looked up how Kivy developers make exe's instead of jumping straight into py2exe land, (I guess "py2exe" just sounded more effective to me then)
More hours pass, and you'd think I'd have eliminated all of my build environment problems by now... but oh, how wrong you'd be...
pyInstaller was failing, and half the solutions I found online were to download some windows update KB32946..whatever...
The other half telling me to downgrade from Python 3.8.1 to Python 3.8.0000.009 (exaggeration! But you get the point)
At the end of all that mess, I decided it wasn't worth some of my lifespan, and that maybe.. just maybe.. it would've been better to create WINDOWS GUI with the mother fuc*ing WINDOWS API.
Alright, step 1: Get Visual Studio..
Step 2: kys
Step 3: kys again.6 -
I'm shitting there hammering out some code butchering some real problems when I suddenly realise I'm surrounded. I look around and yes it's the bloody committee.
The committee is what I call the rest of the department and it is dominated by the old guard which comprises of the programmers that have been around for longer.
None of the old guard can program particularly well but because they had been around the longest they'd all grown senior. The committee had free reign but anyone else doing anything differently has to get approval from the committee.
The only way to code otherwise was to copy and paste existing code then to primarily rename things. If anyone did anything that hadn't been seen before then it would have to be approved by the committee. Individual action was not permitted unless you were old guard.
I swept my headphones away expecting it to be something unimportant. It was.
First things first they announce. We're going to add extraneous commas to the last element of all possible lists separated by comma including parameters or so they say. Ask but why so I do.
Because the language now supports it. They added support for it so it must be the right way someone proclaimed. Does it? I didn't realise we were waiting for it. Why do we want it though?
Didn't you hear? It's all over the blogosphere. It massively improves merge requests. But how I ask?
Five minutes later I grow tired of the chin stroking, elbow harnessing, slanted gazes into the yonder and occasionally hearing maybe its because and ask if they mean when you for example add an element the last element registers as changed from adding a comma. Turns out that's all it is.
How often do we see that tiny distraction and isn't it pointless to make the code ugly just for a tiny transient reduction in diff noise I ask. Everyone's stumped. This went on and on and got worse and worse. But it makes moving things around easy half of them say in unison like the bunch of slobs that they are. I mean really. It doesn't make expanding and contracting statements from multiline to single line easy and it's such a stupid thing. Is that all they do all day? Move multi-line method parameters up and down all day? If their coding conventions weren't totally whack they wouldn't have so many multiline method prototypes with stupid amounts of parameters with stupidly long types and names. They all use the same smart IDE which can also surely handle fixing the last comma and why is that even a concern given all the other outrageously verbose and excessive conventions for readability?
But you know what, who cares, fine, whatever. Lets put commas all over the shop and then we can all go to the pub and woo the ladies with how cool and trendy we are up to date with all the latest trends and fashions then we go home with ten babes hanging off each arm and get so laid we have to take a sick day the following to go to the STD clinic. Make way for we are conformists.
But then someone had to do it. They had to bring up PSR. Yes, another braindead committee that produces stupid decisions. Should brackets be same line or next line, I know, lets do both they decided. Now we have to do PSR and aren't allowed to use sensible conventions.
But why, I ask after explaining it's actually quite useful as a set of documents we can plagiarise as a starting point but then modify but no, we have to do exactly what PSR says. We're all too stupid apparently you see. Apparently we're not on their level. We're mere mortals. The reason or so I'm told, is so that anyone can come in and is they know PSR coding styles be able to read and write the code. That's not how it works. If you can't adjust to a different style, a more consistent style, that's not massively bizarre or atypical but rather with only minor differences from standard styles, you're useless. That's not even an argument, it's a confession that you've got a lump of coal where your brain's supposed to be.
Through all of this I don't really care because I long ago just made my own code generators or transpilers that work two ways and switch things between my shit and their shit but share my wisdom anyway because I'm a greedy scumbag like that.
Where the shit really hit the fan is that I pointed out that PSR style guide doesn't answer all questions nor covers all cases so what do we do then. If it's not in PSR? Then we're fucked.4 -
How do you make up new cool features for your platform?
well you don't because UX and PM think it best to look at competitors and implement whatever shit they come up with.
once, someone came up with a cool feature and some basic prototype for it and they ignored it. the competitor thought of it years later and did it. when they did it, suddenly its a priority at our company to do it as well.
sure, why be the first to do the feature. im sure being unique and creative is overrated not like our profit comes from user subscriptions.
Some recent PM decisions similar to the one above are driving me crazy, its not like u dont know what to do we literally have a ton of ideas so stop ignoring them and prioritizing being a knock off app of someone else. FUCK YOU. -
The fog of war over all that happened with my change of team is starting to dissipate.
3 people were involved and there were 4 different versions of the whole situtations, but from what I've been able to collect it looks like the company is expanding and one of the mail KPI for the current team leaders is how good they are at creating a NEW generation of team leaders, to take care of the new entries.
My previous team leader told me about all these new growth perspectives and the junior entries I could manage, knowing very well of the desire I have previously expressed of being a senior dev with my small group of juniors to teach.
I declined the offer, stating that this whole year has been exhausting. Every single time I've tried anything (using modules for new components on our old web client, tsdoc to document our types, suggesting technologies like ANYTHING BUT ANGULAR AND MONGO, telling how removing down migrations was a retarded move) my suggestions were either shrugged off or flat out refused. Let alone how every time I was proven right, except for angular but give it time and that will bite their tail as well.
Don't get me wrong: they are well withing their right when they take all those decisions, and more. But I DO NOT PLAN on selling a plethora of bad decisions to a new stack of devs as if they were the gold standard.
"I understand your reasons; you, as a company, need a well coordinated team all running towards a goal; loose cannons are harmful.
But now I need you to understand me: I do not agree with your technical direction. I never lied before and I will not start now. Promotions don't matter nearly as much as my integrity, and integrity in my world means speaking up about problems. Your position is perfectly valid, but mine is as well and they can't be reconciled. If I were you I'd make myself a favor and make sure IHateForALiving doesn't become a team leader; given your direction, I'm not the man you want right now".
As mentioned, one of the KPI for team leaders is how succesfull they are in finding new team leaders, and trying to turn me into one didn't end well; I love sharing knowledge, but being honest to myself is far more important to me. So this meant my previous team leader failed in a very big task, and thus was demoted? At the same time, I've been there for 2 years now so they're not really eager to replace me, but I'm under strict examination too as of now.5 -
Nearing the end of the year, and all I'm thinking is that I'm just making bad decisions left and right. And these are like long term decisions, that don't show results until much later.
It's making me really depressed and it's not good.
There are a bunch of should haves all littered throughout the past 3 months and it's really fucking with me.2 -
So i wasted last 24 hours trying to satisfy my ego over a shitty interview and revisiting my old job's codebase and realising that i still don't like that shit. just i am 25 and have no clue where am i heading at. i am just restless, my most of the decisions in 2023 have given very bad outcomes and i am just trying doing things to feel hopeful.
context for the interview story-----
my previous job was at a b2b marketing company whose sdk was used by various startups to send notifications to their users, track analytics etc. i understood most of it and don't find it to be any major engineering marvel, but that interviewer was very interested in asking me to design a system around it.
in my 1.2 years of job there, i found the codebase to be extremely and unnecessarily verbose ( java 7) with questionable fallbacks and resistance towards change from the managers. they were always like "we can't change it otherwise a lot of our client won't use our sdk". i still wrote a lot of testcases and tried to understand the working of major features.
BTW, before you guys go on a declare me an embarrassment of an engineer who doesn't know the product's code base, let me tell you that we are talking SDKs (plural) and a service based company here. their was just one SDK with interesting, heavy lifting stuff and 9 more SDKs which were mostly wrappers and less advanced libraries. i got tasks in all of them, and 70% of my time went into maintaining those and debugging client side bugs instead of exploring the "already-stable-dont-change" code base.
so based on my vague understanding and my even more vague memory from 1 year ago, i tried to explain an overall architecture to that interviewer guy. His face was screaming the word "pathetic" from his expressions, so i thought that today i will try to decode the codebase in 12-15 hours, publish a cool article and be proud of how much i know a so called martech system design. their codebase is open sourced, so it wasn't difficult to check it out once more.
but boy oh boy i got so bored. unnecessary clases , unnecessary callbacks static calls , oof. i tried to refactor a few classes, but even after removing 70% of codebase, i was still left with 100+ classes , most of them being 3000-4000 files long. and this is your plain old java library adding just 800kb to your project.
boring , boring stuff. i would probably need 2-3 more days to get an understanding of complete project, although by then i would be again questioning my life choices , that was this a good use of my 36 hours?
what IS a correct usage of my time? i am currently super dissatisfied with my job, so want to switch. i have been here for 6 months, so probably i wouldn't be going unless i get insane money or an irresistible company offer. For this i had devised a 2 part plan to either become good at modern hot buzz stuff in my domain( the one being currently popularized by dev influenzas) or become good at dsa/leetcode/cp. i suck bad at ds/algo stuff, nor am i much motivated. so went with that hot buzz stuff.
but then this interview expected me to be a mature dev with system design knowledge... agh fuck. its festive season going on and am unable to buy any cool shirts since i am so much limited with my money from my mediocre salary and loans. and mom wants to buy a home too... yeah kill me3 -
Basic concepts, patterns, and pitfalls of software, code, and programming logic become MORE important, not LESS with the rise of LLMs...
An LLM can more or less spit out what you need -if you are specific enough! "Specific enough" being the key phrase here. I always have to laugh at the term "prompt engineering"... it's literally called "communication skills". Also gotta laugh when I see so many haters always raging about the "poor code" produced by AI, because they are probably like "write me a for loop!", specify absolutely no requirements or specifics, and scratch their heads on why they don't get the exact output they expect... news flash, there's like a million ways to do anything you want to accomplish with code... sigh
Code is just a by product of thousands of architecture decisions, designs and options...
but, well... rubes gon' rube1 -
Does anyone else find it strange that the stupidest people in the company are making all the decisions.
In order to be able to engineer software you have to understand everything that the product owner knows, the business analyst knows, the product manager knows + how to actually make the system both work in a reasonable time frame and be maintainable long-term.
But we're not the one making the decisions. The irony of it is something that I can't get beyond.
And when I do go out on a limb to point out a logical inconsistency to UX or product... They don't thank me for it they hate me for it and then 3 days later figure out that they should be doing it and quietly follow my suggestions.
Seriously is the goal here to create good software or to avoid stepping on everyone else's toes in the company who is overwhelmed by the complexity of the project.
I think companies based on a hierarchy of non-technical people controlling technical people, in the creation of software products are a dying breed.
When it comes to creating software products everyone in the hierarchy should be technically minded.
I've seriously been trying to come up with an alternative perspective here.
The executives of the company are completely out of touch and the only thing which looks like progress to them in a sprint review is something visual on the front end.
The technical architect, the product owner and the product manager all seem to be engaged in keeping the executives happy and managing their expectations. By means of obscuring the truth.
Imagine how much more cost-effective building a software product would be if the executives were engineers themselves.
I'm keen to do an experiment and build a company comprised of engineers only.
Obviously they need to have insight into the other roles. But none of these other roles are as complex as implementation itself.
So why exactly are we the slaves of these well-meaning under thinkers?7 -
What should I do to practice being a "good coder" vs a "code Googler" who slaps other people's code into the site just because "it's enough to get the damn thing working"?
I feel really overwhelmed with all that Ive learned thus far. At this point I feel width with know depth when it comes to my knowledge of websites.
I've been messing around with html/css/js for a while and played with plenty of other languages,pre-processors, frameworks, etc. I never went to school for programming and have done work for small businesses independently for some time. Most of what I know comes from codecademy treehouse and similar sites. I can refer to Google on a lot of things but I feel like there are habits that I should be implementing so I don't have to re-do things later. I love the book apart series but I still feel like it's missing the foundational knowledge that I'm looking for.
After all of the time I've spent going through courses I feel like my experiences have given me solutions to build a few things and now I'm just jamming those solutions onto whatever I can until something I like comes on to the browser.
It's really easy to sit down and bang my head against the keyboard until something comes out that looks the way I want it to. However, I know there is way more going on that could help me make better decisions. I just feel like I'm missing something. Maybe it's experience, or maybe it's just the lack of commroddery from working alone and not being able to approach problems with a team.
I hate pulling up my css file and feeling like it's rubbish, and feeling like I don't completely understand things like flex, or display, or position. I've been pushing at this for a while but I don't think I've found a resource that has really made me feel like I'm anywhere close to being a competent coder.
There are tons of watch and learn and do type classes that show you how to make stuff, but I guess what I want to know now is why we make it that way.
At some point do you just sit down and read the MSN start to finish?
I wonder sometimes if my brain has been reprogrammed because I grew up in Google world and don't actually have to solve anything for myself. I read about a guy who locked himself away for hours with books on code and he just sat there and wrote his code on paper until he was confident that he was getting it right.2 -
Fucking fuck! How could I be so naive?
I just started my masters in Enterprise Software Development. It's basically the continuation of the CS BSc I finished this year. I don't consider myself a lazy and bad dev and I finished in the top 5-10% of the class - I say this not because I want to brag, I know I'm not the best, I know I have my defects, BUT I don't think that it's a good sign that all of us, my top graduate friends all full of hate and anger against this whole MSc after just a week. And... It's mostly one fucking egoistic teacher's fault.
Okay, all of us are working full time which is obviously tiring if you combine it with the university classes. But I still think I could manage this first week better, if I wouldn't fucking came to the same line of the faculty.
I deeply fucking hate that I've been naively thinking that the masters will be different after experiencing one of the worst teachers last year. It's fucking first week, and I can't change the specialization anymore, only give up. I wanted to fill up the void with some usefulness, but I just fucking messed it up.
This "beloved" teacher is from the industry, he has a lot of experience and started to teach recently. Which is not a problem, no! It should be a great thing by default. But the way he holds his courses is inaccaptable. I don't think I have the right to share everything, but the following stuff just grinds my gears... Like a fucking lot:
1) He brags about a lot of stuff. Like he made really good deals in the past. Why should we know, that he made a contract with a client for 20 million euros. Okay. Whatever. That doesn't help us, and I think that bragging makes him look like an egoistic scum.
2) I hate this one the most: he fucking says that we have a choice in the administrative stuff. He gives us some hope and offers the possibility to argument and come up with our own solutions for grading and etc. But oh boy, is this a false hope, a fake idea of free will. He already knows what the final solution will be and on what kind of decisions will we all "agree". He did this last year, he does it again. Fucking naiveness of mine...
3) Lastly, he decided, that we have to go to theatre with him, all of us. No exception. And I like the theatre. But only when it isn't forced. Why and how could you pair this up with the grade you give to your students? Because that's what he does.
FML. How can I already hate this? How can I already be fed up with all the stuff? Anyways, I'm signing the contract with the university tomorrow, so let the fun games begin... I know, I look like a whining little boy now, but I just fucking had to went it after this deep fried shit-day. I probably have to get some sleep, and everything's gonna be fine. Eventually, skipping classes might become necessary in order to bear all this shit.6 -
So I figure since I straight up don't care about the Ada community anymore, and my programming focus is languages and language tooling, I'd rant a bit about some stupid things the language did. Necessary disclaimer though, I still really like the language, I just take issue with defense of things that are straight up bad. Just admit at the time it was good, but in hindsight it wasn't. That's okay.
For the many of you unfamiliar, Ada is a high security / mission critical focused language designed in the 80's. So you'd expect it to be pretty damn resilient.
Inheritance is implemented through "tagged records" rather than contained in classes, but dispatching basically works as you'd expect. Only problem is, there's no sealing of these types. So you, always, have to design everything with the assumption that someone can inherit from your type and manipulate it. There's also limited accessibility modifiers and it's not granular, so if you inherit from the type you have access to _everything_ as if they were all protected/friend.
Switch/case statements are only checked that all valid values are handled. Read that carefully. All _valid_ values are handled. You don't need a "default" (what Ada calls "when others" ). Unchecked conversions, view overlays, deserialization, and more can introduce invalid values. The default case is meant to handle this, but Ada just goes "nah you're good bro, you handled everything you said would be passed to me".
Like I alluded to earlier, there's limited accessibility modifiers. It uses sections, which is fine, but not my preference. But it also only has three options and it's bizarre. One is publicly in the specification, just like "public" normally. One is in the "private" part of the specification, but this is actually just "protected/friend". And one is in the implementation, which is the actual" private". Now Ada doesn't use classes, so the accessibility blocks are in the package (namespace). So guess what? Everything in your type has exactly the same visibility! Better hope people don't modify things you wanted to keep hidden.
That brings me to another bad decision. There is no "read-only" protection. Granted this is only a compiler check and can be bypassed, but it still helps prevent a lot of errors. There is const and it works well, better than in most languages I feel. But if you want a field within a record to not be changeable? Yeah too bad.
And if you think properties could fix this? Yeah no. Transparent functions that do validation on superficial fields? Nah.
The community loves to praise the language for being highly resilient and "for serious engineers", but oh my god. These are awful decisions.
Now again there's a lot of reasons why I still like the language, but holy shit does it scare me when I see things like an auto maker switching over to it.
The leading Ada compiler is literally the buggiest compiler I've ever used in my life. The leading Ada IDE is literally the buggiest IDE I've ever used in my life. And they are written in Ada.
Side note: good resilient systems are a byproduct of knowledge, diligence, and discipline, not the tool you used. -
I think the following is all in my head, or I am heading towards an office rivalry situation between my tech lead and me.
characters :
me : a no nonsense android guy who is sometimes very blunt when requested for unwarranted demands. i am also realising that i have been a bit too arrogant, as i come up with a lot of counter questions too fast (not related to story tho)
tech lead : an android guy who has been android dev for a total of 4 years (same as me), 3 of them in current company and somehow got promoted to TL
story: I find this guy to be too much political, delegating a lazy bum, and i kinda called him out in public , once during a discussion where other folks were also kinda calling him out and another time when we were having a small meeting of 3 people. he in turn has taken some actions (like giving me a lower kpi, not giving me appropriate data for doing some work and then asking about it in public, casually ignoring my leave requests) which looks he is taking out a revenge.
at first time i called him out in a discussion where everyone was getting against his havit of giving buttery responses to his boss (who occasionally joins our standups) . he says "we are on track" while we are already dependent on him to provide data/decisions.
he then says to us to do it faster , and when the work does not get completed ( because how it could be, without him doing his job), he blames it on devs.
i called him out on a similar but different topic of him making last moment task additions when we are already on brim with our planned tasks.
on second time i called him out on him not looking into the current task enough as he was expecting me to take decisions on my own.
the decision was about how a screens ui will be populated and there was no api payload available that would match the ui . i created 2 mock api jsons which would appropriately load that screen but was not sure if the 2 apis would be enough for the screen and wondered whete some missing data will come from?
this task is a long one, nd i did took a decision, but he should had validated them to make sure we are on track. the issue came when i took some questions to him and instead of answering them , he blamed on me not being mature enough to work without the data!
All things aside, I am on my weary ends with thins guy. He is my boss and holds incredible powers over me, but he is incredibly incompetent and his habits of delay, delegation and blaming is making my work life worse. I don't wanna leave this job too, because as much as i hate it, its currently one of the major names in industries and giving a solid power to my resume -
... worst drunk coding experience?
none. or to be more precise, all of the three of them I had. I can't code drunk, i hate doing it, i hatw even thinking about doing it when drunk.
so after those initial three attempts i don't try to do it again, ever.
BUT, best coding experience while high?
ALL OF THEM.
some of the best pieces of code I wrote i did when I was high. my mind goes into overdrive at those times, and my thinking is not lines/threads of thought, but TREES of thought, branching and branching, all nodes of each layer of the tree coming to me AT ONCE, one packet == whole layer across all of the branches.
and the best was when one day, in about 14 hour marathon of coding while high, i wrote from scratch a whole vertical slice of my AI system that i've been toying around in my head for several years prior, and I had all of the high-level concepts ALMOST down, but could never specify them into concrete implementations.
and I do mean MY ai system, my own design, from the ground up, mixing principles of neural networks and neuropsychology/human brain that I still haven't seen even mentioned anywhere.
autonomous game ai which percieves and explores its environment and tools within it via code reflection, remembers and learns, uses tools, makes decisions for itself for its own well-being.
in the end, i had a testbed with person, zombie and shotgun.
all they had pre-defined in their brains were concepts of hunger and health. nothing more.
upon launching it, zombie realized it wants to feed, approached oblivious person, and started eating it.
at which point, purely out of how the system worked, person realized: "this hurts, the hurt is caused by zombie, therefore i hate zombie, therefore i want to hurt it", then looked around, saw the shotgun, inspected its class by reflection, realized "this can hurt stuff", picked the shotgun up, and shot the zombie.
remembered all of that, and upon seeing another zombie, shot it immediately.
it was a complete system, all it needed to become full-fledged thing was adding more concepts and usable objects, and it would automatically be able to create complex multi-stage, multi-element plans to achieve its goals/needs/wants and execute them. and the system was designed in such a way that by just adding a dictionary of natural language words for the concept objects on top of it, it should have been able to generate (crude but functional) english sentences to "talk" about its memories, explain what happened when, how it reacted, what it did and why, just by exploring the memory graph the same way as when it was doing its decision process... and by reversing the function, it should have been able to recieve (crude) english sentences that would make it learn what happened somewhere else in the gameworld to someone else, how to use stuff and tell it what to do, as in, actually transfer actual actionable usable knowledge to it...
it felt amazing to code for 14 hours straight, with no testruns during that, run it for the first time after those 14 hours, and see that happen.
and it did, i swear! while i was coding, i was routinely just realizing typos and mistakes i did 5-20 minutes ago, 4 files/classes ago! the kind you (and i) usually notice only when you try to run the thing and it bugs out.
it was a transcendental experience.
and then, two days later, i don't remember anymore what happened, but i lost all of that code.
and since then, i never mustered enough strength and resolve to try and write the whole thing again.
... that was like 4 years ago.
i hope that miracle will happen again one day...3 -
omg, I hate my managers who always make engineering design decisions, literally, my manager made shortcuts and decisions that I told him not to do, now we have to live with this shit. which can be fine, but then in 1:1 he tells me that I have a short-term vision, I am like hello you stupid piece of shit, don't you remember telling us what to do and we pushed back to you for all the dumb decisions you have made. my manager has no idea about technology and yet people listen to him for engineering decision, stupid.5
-
!tech
I have this bad habit of never taking decisions without discussing. For risky, highly impactful decisions, ig this is a good approach, but when you are trying to be a host, or taking some very basic decisions like ordering food, or booking a time slot, i would ask opinion of all the parties involved.
I sometimes cross the line of being considerate to being bothering, irritating and unreliable with my debating nature.
I Don't know why but i for every situation i feel having a second opinion is necessary and good.For eg, Once i was my sister and our flight got cancelled due to bad weather.
I had to choose : either take the next available flight booked by the same airlines for free, which was around 26 hours later, or book the next flight from another airlines which was in 2 hours but costed twice. we were in a different state, and my middle-class/opportunity deprived brain was seeing a path for both choices, but i thought of consulting sis and she lost her mind. she got scared, she started regretting all our choices, the airway travels , everything.
if i had just taken the decision of going with the 2 hour late flight, i would hav saved myself from so much drama.
How to fucking man up in a decision making situation?8 -
During my small tenure as the lead mobile developer for a logistics company I had to manage my stacks between native Android applications in Java and native apps in IOS.
Back then, swift was barely coming into version 3 and as such the transition was not trustworthy enough for me to discard Obj C. So I went with Obj C and kept my knowledge of Swift in the back. It was not difficult since I had always liked Obj C for some reason. The language was what made me click with pointers and understand them well enough to feel more comfortable with C as it was a strict superset from said language. It was enjoyable really and making apps for IOS made me appreciate the ecosystem that much better and realize the level of dedication that the engineering team at Apple used for their compilation protocols. It was my first exposure to ARC(Automatic Reference Counting) as a "form" of garbage collection per se. The tooling in particular was nice, normally with xcode you have a 50/50 chance of it being great or shit. For me it was a mixture of both really, but the number of crashes or unexpected behavior was FAR lesser than what I had in Android back when we still used eclipse and even when we started to use Android Studio.
Developing IOS apps was also what made me see why IOS apps have that distinctive shine and why their phones required less memory(RAM). It was a pleasant experience.
The whole ordeal also left me with a bad taste for Android development. Don't get me wrong, I love my Android phones. But I firmly believe that unless you pay top dollar for an android manufacturer such as Samsung, motorla or lg then you will have lag galore. And man.....everyone that would try to prove me wrong always had to make excuses later on(no, your $200_$300 dllr android device just didn't cut it my dude)
It really sucks sometimes for Android development. I want to know what Google got so wrong that they made the decisions they made in order to make people design other tools such as React Native, Cordova, Ionic, phonegapp, titanium, xamarin(which is shit imo) codename one and many others. With IOS i never considered going for something different than Native since the API just seemed so well designed and far superior to me from an architectural point of view.
Fast forward to 2018(almost 2019) adn Google had talks about flutter for a while and how they make it seem that they are fixing how they want people to design apps.
You see. I firmly believe that tech stacks work in 2 ways:
1 people love a stack so much they start to develop cool ADDITIONS to it(see the awesomeios repo) to expand on the standard libraries
2 people start to FIX a stack because the implementation is broken, lacking in functionality, hard to use by itself: see okhttp, legit all the Square libs, butterknife etc etc etc and etc
From this I can conclude 2 things: people love developing for IOS because the ecosystem is nice and dev friendly, and people like to develop for Android in spite of how Google manages their API. Seriously Android is a great OS and having apps that work awesomely in spite of how hard it is to create applications for said platform just shows a level of love and dedication that is unmatched.
This is why I find it hard, and even mean to call out on one product over the other. Despite the morals behind the 2 leading companies inferred from my post, the develpers are what makes the situation better or worse.
So just fuck it and develop and use for what you want.
Honorific mention to PHP and the php developer community which is a mixture of fixing and adding in spite of the ammount of hatred that such coolness gets from a lot of peeps :P
Oh and I got a couple of mobile contracts in the way, this is why I made this post.
And I still hate developing for Android even though I love Java.3 -
!dev
There are no right answers in parenting, but there are sure as hell wrong ones and if the fucking backfire effect is too much to keep you from realizing that half of your stupid fucking decisions are delusional at best then you should probably start rethinking some things. I fucking hate dealing with other people fucking up and being stupid and I know I'm going to have to keep dealing with it in one form or another but god why I'm so done with this I just fucking don't want to deal with anyone anymore I don't want to deal with myself anymore
I dunno I don't have anyone to rant to so I can't like be specific here because it's public af but you know typing this makes me feel a little better but I still just don't want to deal with this shit anymore I don't even know what I do want to do there's like nothing the positive feedback is going away and I don't know what to fucking do with myself and I don't know how to change anything I can't fucking fix anything I mean I can fix my shitty code but I'm never getting anywhere with that and whenever I want to fix anything that's actually important I just fuck up regardless of how hard I try I just don't want to fucking try anymore I don't know if I'll actually hit post but I have to put this somewhere so probably but ugh I don't even fucking ugh literally all of my problems are so fucking dumb and small and elementary but I CAN'T FUCKING DO ANYTHING I keep ranting about these fucked up people I have to deal with and yeah they fucking suck and sometimes I wish they didn't exist but I know I'm just as if not more of an idiot and everyone would probably be better off if I didn't exist but wait no that would have happened but you guys don't get to know about that because it's specific and putting that here would fuck shit up but someone else could so that so much better and I don't know everyone who interacts with me is just hurting themselves like fuck why do some friends like blades better than me maybe because I'm even less caring and even more damaging than a stupid fucking inanimate sharp piece of metal god fucking ugh okay I can't focus on anything why is this even okay side rant why are atheists so fucking hated like yes maybe some can't understand their motives for like doing things but nobody can really understand each other's like religious people all use god or gods in their own way why do you have to think of people who have zero gods as opposed to your nonzero as less human than you there's so much wrong with that okay that side rant is over but this whole thing is a side rant so cool fuck my life lol uuh I don't know I don't want to stop typing I don't know why though I guess I just actually I have no fucking idea I'm just here doing this I should be like fucking asleep I'm passing the fuck out after this ugh okay okay okay okay okay okay okay umm I really want to quote a certain person that I really hate right now and dissect them and prove every single fucking stupid argument they make wrong but I feel like that would not be good since this is so public but I swear I hate this and you know what if you're thinking that yes I AM A FUCKING WHINY BITCH DEAL WITH IT I'M WHINING YOU DENSE FUCKER YOU DON'T HAVE TO POINT IT OUT AND FEEL SMUG IT'S BETTER TO VENT HERE THAN A LOT OF OTHER WAYS SO JUST SHUT THE FUCK UP OKAY ACTUALLY FUCK IT CALL ME OUT ON IT I NEED SOMETHING TO TAKE THIS OUT ON GOD AAAAAAH okay uuh yeah that's fun I'm a fuck up okay okay so you ask "how can you be a fuck up you're so young her der" okay being young generally is a disadvantage because you haven't had opportunity but boy have I and I sure fucked every single one of those up so yeah fun stuff you know woo haha mmkay I wish I had friends online this late because then I could like rant to a person and shit I mean this community is people but not people I know and it's not really back and forth as much and ugh okay right uuh yeah good um ugh I used to be able to get this shit out by doing something I'm good at but now I'm shit at everything and I can't motivate myself and it's all just bottled up and there's so much shit and nothing works and fuck there's probably a simple solution to everything I'm facing but I'm such a dense piece of shit that I can't find any of those stupid fucking ugh okay now I'm looking at my stupid hands typing ugh I hate the things right back up here uuh uuh I have 500 charas left lets fucking go I don't want to stop I mean I do want to stop but like by that I mean I just want to not exist I do want to keep typing here because it's the only thing distracting me but yeah uuh right um some people were like wtf happened with your stalking thing and this isn't where I should put it but fuck it whatever some weird guy just logged on for 10 mins to take a screenshot of the time being 2:22:22 and logged off and boom the school year ended uuh yeah kay right fuck I have to end it now
Aaaah okay uuh right bye I'm really sorry if you actually read that whole thing4 -
"Dear TitanLannister : You are in the final year. A lot of shit is happening around u. its now time to make a career and take tough decisions. What would you do?"
CHOICE 1: COMPETITIVE
>>>>background : "a lot of super companies like wallmart, fb, amazon, ms, google,.. etc simply takes a straight coding test for fresher placement. They ask tough bad ass level questions, but with right guidance, a hell ton of dedicated hours of coding, and making it to the top of various coding tests could make you a potential candidate"
>>>>+ve points :
- "You got the teachers and professionals with great experience to guide you"
- "a dream job come true.you can go there and join teams that interests you"
- "it was your first exposure to computer world. maybe you would like doing it again, after 4 years"
>>>> -ve points:
- "You have always been an average 70 percentile guy. The task requires 2000-3000 hours of coding an year. it will be hard and you always grow bored out of this pretty quickly"
- "Even If you did that , you stand a lesser chance because your maths is shitty.There are millions running in this race with brains faster than your IDE"
- "your college will riot with you because they expect 75% attendance"
- "You are virtually out of college placements, in which , even though shitty companies come and offer even shittier 4LPA packages($6000 per annum), would take a tough logical/aptitude based test for which you won't be able to prepare"
CHOICE 2: PROFESSIONAL WORK
>>>>background: "you always wanted to create something , and therefore you started taking android based courses. you have been doing android for over 2 years and today you know a lot of things in android. you might be good in other professional lines like web dev, data analytics, ml,ai, etc too if you give time to that"
>>>>+ve points :
- "you will love doing this, you always did"
- "With the support of a good team, you will always be able to complete tasks and build new things quickly"
- "Start ups might offer you the placement, they always need students with some good exposure"
>>>>-ve points :
- "Every established company which provides interesting dev work takes their first round as coding, and do not considers your extra curricular dev work. So you are placing your all hopes in 1 good start up with super offerings that would somehow be amazed by your average profile and offer you a position"
- "start ups are well, startups and may not offer a job security as strong as est. companies"
- "You are probably not as awesome dev as you think you are. for 2 years, you have only learned the concepts , and not launched more than 1 shitty app and a few open source work"
CHOICE 3: NON CODING
>>>>background: "companies coming in college placements have 1-2 rounds of aptitude,logical reasoning , analysis based questions and other non tech tests. There are also online tests available like elitmus,AMCAT, etc which, when cleared with good marks help receive placements from decent established companies like TCS, infosys, accenture,etc"
>>>>+ve points :
- "you will eventually get placed from college, or online tests"
- "there will be a job security, as most of these companies bonds the person for 2-3 years"
>>>> -ve points:
- "You really don't like this. These companies are low profile consultant/services based companies which would put you in any area: from testing to sales, and job offers are again $5000-6000 per annum at max"
- "Since it includes college, the other factors like your average cgpa and 1 backlog will play an opposing role"
- "Again, you are a 70 percentile avg guy. who knows you might not able to crack even these simple tests"
Ugh... I am fucking confused. Please be me, and help.The things that i wrote about myself are true, but the things that i assumed about super companies, start ups or low profile companies might not be correct, these points comes from my limited knowledge ,terrified and confused brain, after all.
:(7 -
Since the last rant is talking about brains, I feel like this summer heat is frying my brain. It's been some of the weirdest days for me these last couple of days. I cannot focus on anything. Cannot make sane decisions or conclusions. I'm more depressed/sad. More disorganized. I don't want to eat anything. I'm sky-high anxious. I'm more shy than ever in public. I have no reason for that but I don't what's happening.3
-
I like react, I really do. But one thing I hate about it, is the number of decisions I need to make, I get so fucking confused whether to use redux thunk or sagaas, inline styles or styles components, redux or flux, even to judicially choose whether to use a state management library or not. It just lack of my own experience or don't know what. But this thing sucks2
-
What is everyone's opinion on companies/organisations 'too big to fail'...?
I was just pondering on how 'just Google it' has become so 'natural' as a way of saying search the Internet. The more I think about it, the less I like it.
I know the chances of them failing/crumbling are neary zero (hence the name) but if an org, Ie Alphabet, made some shit decisions and bankrupted their company, what would happen then? Any ideas? I don't mean in terms of social fallout, economic etc.
I mean in terms of network infrastructure, them being such a central part of 'the web', all their Dns services, their backbone links, Google drive, Google fiber etc. What would happen to all user data? Just be destroyed?
I've never 'seen' a large tech company collapse, but just wander as to how that process would work for such a huge organisation, and the literal mountains of data they have which will need destroying or relocating.
Inb4 watch Mr robot hurrr5 -
Is it something like, with a great salary band you don't need to go to US? I'm a software developer, I get good money, in India.
There are a lot of people moving to US, the people I think can only take right decisions.14 -
Found someone who had a similar idea then me.😮
(Except, mine was 2 years ago and I'm working on it since)😎
Thought i'd be nice, talk or write with him about stuff.
Went to his github repo and opened up a few issues about certain design decisions and problems that he and I face because of our environment.
His reaction was mostly like "meh, doesn't matter, to individual, trivial, ...
"🙃
I think he didn't even try to understand me or what I meant, or what that implies.
I don't know if I behaved like a dick, or if he is.😑
Just tried to be nice and Interact in a usefull way.
🙁3 -
Working on a test assignment for an interview with a company. There's a time limit of 3 days and I absolutely hate how quickly I have to do everything (I don't have much free time because of some family obligations). I'm just copying stuff from a tutorial because I find it very difficult to start projects from scratch. Analysis paralysis gets in the way. I'll be hired as a senior so people will expect me to make technical decisions all the time and this scares me but I'm greedy and I like the extra money. Part of me wishes I could find a junior job and just work on very basic stuff.
-
!dev-related
The charging port on my Galaxy S8 is messed up and is constantly disconnecting while charging, which results in the phone either slow charging or just got charging at all.
I thought I got the monthly phone insurance through Verizon and I was just gonna pay the deductible and get the phone replaced, but apparently I don't actually have the insurance even though I could've sworn I did. So that option is out the window.
So now I'm left with 3 other options:
1.) Pay $100 to get the charging port repaired at a local repair shop
2.) Pay off the remaining $200 I owe on the phone and get a phone upgrade from Verizon (because I am due for an upgrade)
3.) Get the upgrade but still keep my current phone on my plan and just pay the remaining $200 off monthly like I have been since I got the phone, except I'd also be paying for a second phone. Which is fine, because either way I'd be paying the $200. It's just a question of paying it in a lump sum or paying it monthly. Either works for me, it's $200 both ways
The downside of upgrading now is that I wouldn't be able to get the Galaxy S10 when that comes out, and that's what I've been waiting for as I prefer the smaller Galaxy S phones over the Galaxy Notes.
I suppose I could trade in whichever phone I get when the S10 comes out, but that would be a huge hassle and I'd have to pay at least 50% of the phone off in order for it to be eligible for trade-in
Decisions decisions.7 -
At what point do you say a junior dev is no longer a junior? What metrics do you use? Like scope of knowledge, impact on team / code decisions, years experience, management skills, etc.?
I feel I'm qualified as a mid level developer now despite only being a junior for a little over a year. I had tons of internships in college and was kind of placed in a role where growing fast was required.
I broke a sweat for most of that ~1 year I worked as a junior and my contributions to my project aren't insignificant
I don't say that to toot my own horn here, I really do want to ground myself in reality. But I don't know if my standards are too low or my organizations standards are too high. FWIW, other devs on my team have commented privately / informally that the junior title isn't super fitting.
I'm still pretty dependent on my boss but that's more for final say of things. He'll often have some input to my work but I'll also be involved with design discussion and take up a large chunk of work without question. On light sprints I'm knocking out 20+ taskhours of work, going closer to 30/40 when things pick up. Not uncommon to kill 10 user stories in a sprint.
I don't know, what do you guys think?8 -
I'm in a big fat fucking stinking rut, as in progress on this project has absolutely stagnanted.
Gonna rubber face your duck now **UNZIPS** excepts I don't have zippers, as joggers are the one true way; fake Adidas til I fucking drop.
Brain damage aside, I understand both how I've layed out the data and what I'm supposed to do with it. We have a virtual machine, an array of instructions and arguments for a given process within it, and we need to walk this array and map values to registers.
We also need to spill values inside registers to stack, IF they are required at a further point within that block. This also isn't terribly complex. We simply look forward in the array and see if the value is an argument to any instruction that *needs* this value to be loaded (ie, within a register).
So this implies multiple iterations; we need to better understand how one particular value is used throughout an F before we can make a final decision on how many registers and stack space are actually needed for the whole block.
Here's where it gets tricky. If there's a call, we need to be certain that the symbol being invoked has already been fully processed. Besides the obvious fact that recursion fucks me up, there's another matter: say a private method gets invoked by another private method. We can take advantage of this, by which I mean, sacrilege incoming so put on this toga.
Looking at the output for C compilers, it would seem this is not done in practice, I would assume because it's a pain in the ass. But when you have the guarantee that F will only be called internally, as that's what "private" means, there's two ways it can go:
0. It's well below the 13-20 cycle threshold, so you inline the fucker. No suprises there.
1. It's a more involved affaire, and invoked in more than one place, so you don't inline it. Codesize matters.
Recursion and [1] are the big deal things holding me back. Not because it's too hard, like I said this is kindergarten level abstraction. I'm just slow and fanatical, which is how I prefer to spell "constant obsessive paranoid delusions". I can see the potential optimization I can pull here, so I'm stuck trying to figure it out.
Idea would be, handling the register allocation and stack spill for an internal-internal (or deep internal; what we like to call a "guts" method) in synchronization with the *calling* processes. This is, fundamentally, violating all conventions -- but so under the hood no one will notice.
Let me give you an example. If we were to pass some value to a function, expecting to mutate it and get a different value back, in a lot of cases it'd be stupid to make an implicit copy by using two registers, one for input and another for the output. Dude, it's one cycle. Multiply it by a million, say sixty times per second, for every time you __needlessly__ make a copy of a value that we've already stated is mutable.
Clearly unacceptable. This is, in the strictest sense, everywhere in every single codebase. Premature micro optimization is the root of all goodness, God is great and praiseworthy. So how do we go about it?
Answer is I know and I don't know. By which I mean to say, this very thing I've done by hand. Assembly is fun. Now the issue is teaching a calculator how to do it. Not so fun.
There is a dependency chain between processes, as I believe I've kind of alluded to. I'm trying to make decisions on the side of the caller depending on the details of the callee, which is why recursion is rawdogging my soul. This is the same situation, it's inverting the direction of one or more links in the dependency chain, which makes no fucking sense.
And yet it does.
Brain, explain yourself.
How do *you* handle this without crashing?
Brain?
<<ME STEWPED; BEEP-BOOP>>
Alright then, that was a useless attempt at fuckery. Let's have a nap then, maybe it'll come to me in the morning. That's what I've been saying to myself for almost a month now.
Perhaps it is a hardcoded fuk.1 -
I got enrolled in 'extracurricular activity' in second grade of my elementary school. We were playing some games at first, but later teacher started to show us programming and explained the matter very well considering we all were 8 y olds. I got interested and while others would play games I was coding and solved assignments teacher gave us.
My family thought that computer will make me stupid, thinking it was made just for playing games. They promised me to get me the computer if I had highest grades in school. I did, not all of them but tried really hard to be the best, despite that I waited for years and still being close to have aced every subject in the meantime.
I got my first computer when I was 16.
Since that day I was constantly reminded that I am wasting my life away sitting at this stupid box.
Later when I got the job that was well payed, they acknowledged that they were wrong to do that for majority of my life.
My parents are unable to explain what I do at the job as they were never interested in what I really do. "Something with computers" is most common answer you can hear from them.
My parents are non-technical people and they still don't understand how that box works and God forbid that they buy something online. My father even rejects to use smartphone.
They also thought that I'm no college material despite always being in top 5 students of the year (not class, but whole year).
They had other plans for me, but I was aware of that and didn't gave a f00ck about what they want with my life. I knew what I want and that was all exactly opposite of what my parents would like.
I was not the child they wanted, but was good son, even helped them and worked student jobs to pay some bills and to help them financially and still they struggled so hard to find some flaw to my character and decisions just to make their point but more than often failed miserably and just proved how wrong they were and how they don't think anything trough.
Only one who really supported me was my elder sister as she knew I was doing the right thing! She also did it her way and I am proud of her as both of us were dealing with 2 tough customers.
long rant, but wanted to add one more thing, I was never into sport, but was training tae kwon do and was really into it and was decent at it among my peers. When I was going to national competition, on my way out of the house all I got from my parents was: "why are you even going there when you will immediately loose, is it just to travel a bit?"
TL;DR: my family supported me less in my life than worst phone call you had with IT support at your worse ISP!4 -
What the hell am I!? I wonder if you guys can help me...
I've been programming most of my life but I've never actually been a developer by title or job role. I thought maybe if I list what I do and have done someone here could help? I'm sure there are more of you in a similar boat.
- C# and VB dev for some quick DBMS projects to help me understand and mine databases and create a nice simple view for project teams to show findings from the data to help make certain decisions.
- Automating a lot of my colleagues work with Python and if very restricted then just VBA macros in Excel and MSP. This did also include creating tools to gather data during workshops and converting the data for input into other systems.
- Brought Linux to the office with most team members now moving over to Linux with the peace of mind to know that though they do need to try solve their own problems, I can help if need be.
- Had to learn AWS and then implement an autoscaling and load balanced data center installation of a few Atlassian toolsets.
- Creating the architecture diagrams documentation needed for things like the above point.
- Having said that, also have ended up setting up all the Jira/Confluence etc. servers we use and have implemented so far whether cloud (Azure/AWS) or on prem and set up scripts to automate where possible.
- Implemented an automated workflow view in SharePoint based on SP list data and though in an ASPX page, primarily built in JS.
- Building test systems in PHP/JS with Laravel and Angular to help manage integration between systems. Having quite a time right looking into how to build middleware to connect between SOAP and REST API's, the trouble caused more by the systems and their reliance on frameworks we're trying to cut out of the picture.
- Working on BI and MI and training a team to help on the report creation so that I can do the fun creative stuff and then set them to work on the detail :)
Actually it seems safe to say that it seems that though I've finally moved into a dev office (beforehand being the only developer around) I seem to be the one they go to when a strategic solution is needed ASAP and the normal processes can't be followed (fun for someone with a CompSci degree and a number of project management courses under the belt... though I honestly do enjoy the challenges)
But I always end up Jack of all but master of, well hopefully some at least. let's not even get started on the tech related hobbies from circuit design and IoT to Andoid / iOS and game dev and enjoying a bit of pen testing to make sure we're all safe at work and at home.
As much as I don't like boxes, I'm interested to know if there is in fact a box for me? By the way, the above is just a snapshot of my last two years minus the project management work...2 -
I was tasked with reviving this mobile app purchased off the shelf. Initially, I was impressed with what I was seeing while perusing the codebase. I'm used to editing laravel projects written by handpicked amateurs. So this felt like a breath of fresh air. Coupled with the fact that I'd recently enquired on this very platform whether anyone has chanced upon an impressive code. All is going well, until
I start finding the multi layers of abstraction and indirection cryptic and obfuscatory; and that is coming from an idealist like me who advocates for "clean" patterns such as event emission. I wonder whether it would have helped if the emission or events were typed for easy listener tracking, instead of a black hole like vm.notifyListeners() (DOESN'T EVEN HAVE AN EVENT NAME!)
With time, I become disgusted by the tons of custom elements with so many parents
My take on production level user of the view model pattern: amazing in theory
One of the architectural decisions made on this project that had me foaming in the mouth, pulling my hair and cursing out the author's generations, past, present and future: can you believe these guys are APPENDING IMAGE DOMAINS TO THE RESOURCE? Ie the domain names are tightly coupled to the images and dictated by the api, instead of the client
If this isn't bad enough, the field names of returned entities/models don't exist on the database, of course because the stupid laravel framework abets this sort of madness by combining eloquent "scopes, attributes, and appends". A trifecta of horrors.
I eventual scaled through the horrors, but not without losing my admiration for the team behind it. App has returned to the shelves, because my company lost patience with my resuscitating it. They have the regular api authentication in place, but that's not good enough. They just had to integrate firebase as well, just because. Meanwhile, this isn't documented anywhere. I stumbled into it during my scuffle with app setup, gradle ish. Eventually got banned by firebase for "sending unusual requests". My company's last straw -
The 'geniuses' at Business doesn't seem to figure out why all of their systems turn out to be dogshit and outdated within a year or two.
Its because they don't even involve developers/IT into ANY of theirs decisions.
It's kinda like the patient telling the brainsurgeon how to do their job.
Hey, I get it. We are a bunch of antisocial wizards conjuring black magic at our computers all day. I would stay the fuck away from us if I were you aswell, but please for the love of Cthulhu, let us in on your great plans and amazing decisions before assigning blame.
Regards,
Th3 h3ckerz at IT1 -
A FuckFace guy today did this
FuckFace and I both hate Apple
FuckFace hates Apple blindly and hates everything related to Apple and can't even justify shit
I hate Apple for their stupid decisions
Then we meet a guy who is a friend of our boss I started to tell him how I don't like apple and I leave the conversation
FuckFace enters the conversation stupidly makes some fucking stupid comments make the other guy angry and now our boss is telling us shit about how we should not do this and not do fucking that
I had nothing to do with this shit I am gonna stab FuckFace tomorrow
So in our CS community specially from where I come from ($ecurity) people, we have long debate about how Linux is superior from those Mac and other Apple line ups
I mean I use Linux everyday as my primary OS for CTF for coding and basically everything.
But can we fucking for once acknowledge that Mac people have better UI than us?
Like go to the gnome theme store for god sake we have fucking top 10 filled with various kinds of flavors of apple UI from icons of la capitaine to mc cruise gtk3 themes
But still people blindly hate everything about apple
I mean I hate their overpriced ass and other stuff too but the UI IS SAUCE
Linux peeps no hate though
Apple peeps you guys are going to tangle in your dongle's one day 😊9 -
Today I tried: pnpm.
Following up my hateful rant against Isaac Schlueter and his decisions on npm.
I went all the way out and tried so many alternatives, honestly found a developer experience much greater than the "official" one.
What triggers me the most is the explicit statement of "other creative means" in this commit https://github.com/npm/arborist/..., you don't talk like that when all other package managers are making creative workarounds for the design failure of node_modules.
I don't know what it is but I really hate this guy.4