Details
-
AboutA frustrated enterprise dev.
-
Skills.Net, SQL, JavaScript, Python, Weaponized Bullshit, Lethal cynicism, bouts of naive hope.
-
LocationGermany
Joined devRant on 11/24/2017
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
-
Every time I'm looking through the Minecraft code trying to reverse it I stumble upon this little historic artifact and it never ceases to make me feel weirdly happy :D
-
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 -
Part 1: https://devrant.com/rants/4210605
So let's talk about these tasks we were assigned. Ms Reliable and Mr DDTW's friend who I just realized I haven't named yet were in charge of programming communications. Ms Enabler and Mr DDTW were in charge of creating the vehicle subclasses for the new variants we were instructed to build. Each one had to handle one variant, and we estimated that both of these would be about the same difficulty (Ms Enabler's one turned out to be a little harder).
I like Ms Enabler, and she's a good friend, although she isn't the best at problem solving and her strengths as a dev lie in her work ethic and the sheer amount of theory she knows and can apply. These just so happened to be the exact opposites of my strengths and weaknesses. Within a few days of having assigned the tasks, she came up to me asking for help, and I agreed. Over the following couple of weeks I'd put in quite a lot of hours reviewing the design with her, and we'd often end up pair programming. It was more work for me, but it was enjoyable and overall we were very efficient.
The other two girls in the group were also absolutely fine this sprint. They simply did the work they had to and let us know on time. Outside of some feedback, requests, bugfixes, and mediating disagreements, I didn't have to do anything with their tasks.
A week and half into the sprint and everybody else has their part almost in an MVP state. As Mr DDTW hadn't said or shown anything yet, I asked if he could push his stuff to the repo (he got stuck with this and needed help btw), and what does he have?
A piece of shit "go to this location" algorithm that did not work and was, once again, 150 lines of if statements. This would not have been such a massive deal if THE ENTIRE PREVIOUS SPRINT HAD BEEN DEDICATED TO MAKING THE CODE DO THIS IN A SENSIBLE WAY. Every single thing that this guy had written was already done. EVERY SINGLE THING. A single function call with the coordinates would let the vehicle do what he wrote but in a way THAT ACTUALLY WORKED AND MADE THE TINIEST BIT OF FUCKING SENSE. He had literally given so few shits about this entire goddamn project that he had absolutely zero clue about what we'd even done last sprint.
After letting this man civilly know through our group chat about his failures, giving him pointers on what's wrong and what he can use and telling him that he should fix it by the end of the week, his response?
"I'll try"
That was it. Fuckass was starting to block us now, and this was the first sign of activity he's given since the sprint started. Ms Enabler had finished her work a fucking week ago, and she actually ASKED when she ran into trouble or thought that something could be improved. Mr DDTW? He never asked for shit, any clarification, any help, and I had let everybody know that I'm open. At least the other two who didn't ask for shit ACTUALLY DID SOMETHING. He'd been an useless sack of shit for half a semester in three separate projects and the one time he's been assigned something half important that would impact our grades he does this. I would not stand for it.
I let him know all this, still civil (so no insults) but much less kind, capped with "Stop fooling around. Finish this by the of the week." which probably came off as a threat but his shithead kinda had it coming.
He was actually mad. Dropped a huge faux-apologetic spiel in the chat. Why couldn't I just trust him (his code was garbage and he was constantly late without explanation), his work was almost done (it wasn't and if he'd started he'd understand the scope of what he was assigned), that the problem was that I'm a condescending piece of shit (bruh), and was suddenly very interested in doing work. Literally everybody ignored him. What was funny was seeing the first questions and requests for help after that spiel. I obliged and actually answered what he asked.
The end of the week came and went he'd just uploaded more garbage that didn't work. I had foreseen this and, on top of everything else, had been preparing his section of the work done by myself and properly. Thus came a single commit from me with a working version of the entire module, unblocking the entire team. I cannot imagine the sheer hatred for this man at that moment for the commit message to simply be:
"judgement"
And with that, all I got was a threat to report me to the professor for sabotaging his work. The following day our group got an email from the professor, with no explanation, asking for an almost-immediate video conference. Group chat was a shitshow of panic, as nobody knew what was going on. Least of all Mr DDTW.
Once again, I'm approaching the word limit so to be continued in part 3 (hopefully of 3)7 -
Random advice: don't get an AI degree. It's as useless as a liberal arts degree considering how most countries are still using stupid systems.23
-
”Are you planning on having kids in the near future?”
Literally (very) illegal to ask where I live. Too bad I was too young to understand the severity of him asking.
Worst place I’ve ever worked.8 -
There was a department. Long time ago their work was somewhat complicated: background checks of businesses, websites, ToSes, assuring agreement compliance, some risk management on top. They started as small 3 people team but over the years they were hiring new employees to catch up with the growing customer base. They were still struggling. Few years back we've integrated 3rd party services to help them and, finally, their backlog was gone!
In January they complained about how much more work they have since the merger so I inquired about which process was troublesome, what was the flow, etc., and it turned out to be very... Tinder-like - the issue was the sheer number of cases:
1. open a case,
2. check results in few windows,
3. if green + green + green, move right.
4. else move left.
It was ridiculous, I wouldn't stand for that. I sat for an hour, made some ghosting scripts that followed same business logic and saved results alongside their actual decisions. Last week I compared the two and there was zero difference so I green-lit it with my boss and pushed to prod.
Oh, the happiness on their faces when they heard the news, the disbelief, the tears of joy!
And then it happened. After 4 years of being cautious not to stir the waters I did it again. Yesterday I accidentally replaced 17 people department with 3 scripts. How was I supposed to know it was *all* they were doing??1 -
I'd like to extend my heartfelt fuck-you to the following persons:
- The recruiter who told me that at my age I wouldn't find a job anymore: FUCK YOU, I'll send you my 55 birthday's cake candles, you can put all of them in your ass, with light on.
- The Project Manager that after 5 rounds of interviews and technical tests told me I didn't have enough experience for his project: be fucked in an Agile way by all member of your team, standing up, every morning for 15 minutes, and every 2 weeks by all stakeholders.
- The unemployment officer who advised me to take low level jobs, cut my expenses and salary expectations: you can cut your cock and suck it, so you'll stop telling bullshit to people
- The moron that gave me a monster technical assignment on Big Data, which I delivered, and didn't gave me any feedback: shove all your BIG DATA in your ass and open it to external integrations
- the architect who told me I should open my horizons, because I didn't like React: put a reactive mix in your ass and close it, so your shit will explode in your mouth
- the countless recruiter who used my cv to increase their db, offering fake jobs: print all your db on paper and stuff your ass with that, you'll see how big you will be
To all of them, really really fuck you.12 -
In last episode of "How SystemD screwed me over", we talked about Systemd's PrivateTMP and how it stopped me from generating SSL certificates.
In today's episode - SystemD vs CGroups!
Mister Pottering and his team apparently felt that CGroups are underused (As they can be quite difficult to set up), and so decided to integrate them into SystemD by default. As well as to provide a friendlier interface to control their values.
One can read about these interactions in the manual page "systemd.resource-control"
All is cool so far. So what happened to me today?
Imagine you did a major system release upgrade of a production server, previously tested on a standalone server. This upgrade doesn't only upgrade the distribution however, it also includes the switch from SysVInit to SystemD. Still, everything went smooth before, nothing to worry now then, right? Wrong.
The test server was never properly stress-tested. This would prove to be an issue.
When the upgrade finishes, it is 4 AM. I am happy to go to bed at last. At 6 AM, however, I am woken up again as the server's webservices are unavailable, and the machine is under 100% CPU load. Weird, I check htop and see that Apache now eats up all 32 virtual cores. So I restart it, casting it off to some weird bug or something as the load returns to normal.
2 hours later, however, the same situation occurs. This time, I scour all the logs I can, and find something weird - Many mentions that Apache couldn't create a worker thread? That's weird.
Several hours of research and tinkering later, I found out the following:
1 - By default, all processes of a system that runs SystemD are part of several CGroups. One of these CGroups is the PID CGroup, meant to stop a runaway process from exhausting all PIDs/TIDs of a system.
This limit is, by default, set to a certain amount of the total available PIDs. If a process exhausts this limit, it can no longer perform operations like fork().
So now, I know the how and why, but how should I solve this? The sanest option would be to get a rough estimate of just how many threads the Apache webserver might need. This option, though, is harder, than apparent. I cannot just take the MaxRequestsWorkers number... The instance has roughly double the amount of threads already. The cause being, as I found out, the HTTP/2 module, which spawns additional threads that do not count towards this limit. So I have no idea what limit to set.
Or I could... Disable the limit for just the webserver via the TasksAccounting switch. I thought this would work. And it did seem to... Until I ran out of TIDs again - Although systemctl status apache2.service no longer reported the number of tasks or a task limit of the process, the PID CGroup stayed set to the previous limit. Later I found out that I can only really disable the Task Accounting for all the units of a given slice and its parents.
This, though, systemctl somewhat didn't make apparent (And I skimmed the manual, that part was my fault)
So... The only remaining option I had was to... Just set the limit to infinite. And that worked, at last.
It took me several hours to debug this issue. And I once again feel like uninstalling systemd again, in favor of sysvinit.
What did I learn? RTFM, carefully, everything is important, it is not enough to read *half* the paragraph of a given configuration option...
Oh, and apache + http/2 = huge TID sink. -
I have been trying to get fiber installed at my location for over a month now. It is really frustrating. They have been out 4 times and every time there is another reason they cannot get it installed. I finally got all my ducks in a row to make it happen and I have to wait until the 20th for the install. Great, my country is literally going full retard and now I wonder if war will stop the install now. Grrrrr......
This brings me to tethering. I have been tethering my internet right now. I have 20GB of bandwidth of 4G speeds. When that runs out I get shitty ass 300KBPS. Yes, bytes per second. You can do almost nothing at that speed. That is using the built in tethering program that comes with Android. This is where I get to the grey area of tethering.
I decided to try the ClockWordMod Tether app to do USB tethering. Apparently that is full speed 4G. So I can work and do whatever with that. I feel like I am gaming the system. Part of me doesn't care, part of me says I shouldn't.
What are your thoughts on tethering using alternate methods. Am I going to the Nether?5 -
Fuck you fucking piece of self taught shit. Self taught my ass you dont even know how to use git or how to use modern IDE. You dont even know how to use debugger. You dont read other peoples code because you are an arrogant kid who thinks that everybody elses code is trash. Yet after couple days when you need to work on your own code you usually rewrite entire fucking thing because of how fucked up your spaghetti implementations are. Even worse you dont even know fucking english so documentation is useless to you unless I dumb down everything for you and spoon feed you like a 5 year old. Motherfucker you cant even stick to a proper work schedule, you go to sleep at 7am and wake up at 18.00 and I have to fucking work overtime because Im blocked by your spaghetti code. Fuck you fucking self taught arrogant piece of shit who never ever worked as a dev profesionally yet you have the nerve to feel cocky.28
-
* Sets up some software
"Alright, and now to start the database"
* types "sudo systemctl start po-"
* hits tab -> poweroff.target
* Enter
...fuck me
little did I know, the database was already started...4 -
i've got my first job after getting out of college. not a great package. I'm learning more, will get experience. i have plans for freelancing and seek a better job. I'm an Indian.
what really upsets me is that I just discovered that I've no knowledge in finance. I'm feeling insecure, afraid and depressed. I'm browsing for some youtube channels, books and podcasts to get some some knowledge about finance and real estate.
all I have is a saving account in SBI bank, I just know how to take money out of it with my debit card and transfer money with online banking
how do u guys do ur finance, where do u invest. do u invest in stock market. insurance?? help me out. i'm fucked.
never thought i can be so stupid, I hate myself, never even thought I'll need financial intelligence.
are there more people like me.
i'm just so down and feeling suicidal.8 -
- a split keyboard with a touchpad in the middle that will let you control all gestures on a computer
- a set of desk/monitors that adjusts perfectly for ergo for anyone
- a vertical laptop dock that is modular so you can add extra memory/video processing power and only using your laptop as a CPU/secondary graphics card
- a set of kitchenware and plates that would be so easy to clean and would never get stained
-an insect home alarm system that tells you where the fucking insect is so it doesn't take you by surprise/you can call someone to remove it
- a clothing brand that has a buy one gift one operation mechanic, where you buy a shirt and an article is donated to a local charity
- a restaurant
- a simple, yet robust database option that walks users through creating good databases that is super user friendly
- an app that takes tattoo designs in any format, converts them, allows for editing, and then can hook up to a special printer that gives you the transfer you will use on the client22 -
Am I the only one who when they are super focused writing code and debugging starts acting like Bob Ross painting a picture?(without a filter... of course)
And here we’ll add another little god damn breakpoint so we can watch our fucked up variables report the wrong thing..
Oh and over here will just add another little happy simple if statement.
Oh look at the happy if statements in a row.. maybe we’ll add little switch statement here.6 -
Thoughts prior to feedback meeting, about how it's gonna go.
---------------------------------------------------------
Scenario one:
Supervisor: The shit is this? You call this a research work? Get the fuck out of here! You're fired and even your unborn kids are banned from coming into this institute ever again!
Me: *walks out sobbing* (dunno how one can walk out of a zoom meeting, but this is imaginary so who's counting?)
Scenario two:
S: Umm, good work. I just don't think it's presentable. Maybe come back in like a few weeks when you actually polish this into a "real scientific work".
Me: *sobs after meeting. Starts preping for seppuku cuz no idea where I'm headed with this work any further*
Scenario three:
S: nah man. This is no good. Let's start from the bottom. Like, start data collection from the beginning or something.
Me: *sobs and commits seppuku on the meeting.* (I just have a pen tho. Hope it has the same effect as a sword)
---------------------------------------------------------
There are other scenarios, but they all end up in me sobbing and/or committing seppuku in/after the meeting so yeah the drama is running high right now.11 -
How do you deal with someone like this?
I've got this dev at my workplace that is terrible to work with, he's 2 main reasons why I say this:
1. He has no clue about team work, every piece of code he writes is written as if he is the only person that has to ever touch that
2. He's overtly protective and opinionated on things that make no sense, they're non standard "rules" that he sets and enforces by replacing others code with his own (often times you see quite large PRs and after inspection you realize he rewrote parts of code to follow his style). These "rules" also take up a really long time to follow and would make any actually experienced developer question this guy's knowledge, one example of this is where he repeats the same code over multiple components for "encapsulation reasons" and God forbid you create a global helper of some sort, he'll straight up remove it the next chance he gets. Another example is that all his components or utilities live inside 1 base directory, so you have roughly 300+ components in a /components directory, all with non standard names so you can't tell which is related to which.
I hate working with this person, it's annoying and it also sucks because he's sort of a more "senior" Dev so managers take his side most of the time.3 -
!rant
I got hired!!
It's been a long month of jobhunting, interviews, and paperwork, but I finally got a job. Real world dev life here I come.9 -
I feel so sorry for all the people in the world who use their phone more than their PC/laptop.
All the pitiful souls who think they're gamers because they installed lootchest simulator on their little digital skinner box. All the sad beings who just view the internet as a collection of ad-infested apps.
Actually, I don't feel sorry, because these people make the world a worse place.
Suddenly we needed websites which could render on tiny screens and need bloated cross-platform app development frameworks. Many game studios became parasites exploiting addictive behavior in humans, instead of creating works of art.
Humans spent 10,000 years to perfect their caves with expensive kitchens, and all people want is for their WiFi to reach the grill at the end of the garden. Humans created central heating, comfortable couches, wall-mounted TVs and luxurious desks -- and all people can think of is whether their phone plan covers holiday roaming at their shitty resorts.
The rare times I do actually go into this apocalyptic wasteland people call "The Outside", all I see is subway cars full of hunched addicted drudges, bus stops with clusters of enslaved automatons.
Fuck all of them.
Fuck all of you imbeciles, who ventured out of the cave and now DARE to call me anti-social, just for preferring the warmth of my comfortable protective den.
It's fucking cozy here, within the walls of my shelter, I got booze and a fridge full of food and a bunch of LSD, I can masturbate under the shower, have sex on the couch, have all kinds of GIANT displays for entertainment, with full-sized qwerty-keyboards, high-DPI mouses, even some console controllers and big TVs if I feel lazy.
You can stick your responsive websites and social-network-integrated Android apps up your rectum, just sit your fucking fat ass down in front of a workstation and desperately refresh the stream of fake attention-seeking messages there, if you absolutely must.
Seriously, why does this guy from our marketing department call me on my private phone number. Why did HR PROVIDE him with my private phone number?
And WHY THE FUCK is he asking me, a DB admin: "Our website doesn't load properly on Safari on my iPhone 7, could you take a look at it"?
No, of course I won't fucking come to the office to take a look at your miserable shitty device with its cracked glass screen.
Fuck you and your outdoorsy habits.
Stay the fuck in your cave, you degenerate attention whore, otherwise please go choke on your airpods.24 -
That feel when you’re asked to share work you’re proud of and you’re not proud of anything.
Or rather, you are... but they’re programs written in C/C++ and you’re interviewing for a mostly frontend gig in React.11 -
Heard a fun quote from a project manager today:
"Naaah we don't need tests, that project is so small it wouldn't be worth it"
Seconds later: "Why does this keep breaking all the time and we only notice it once deployed?"8 -
I rejected a 1 year contract offer because of Corona Virus. Their offer was %60 higher than my current package but Australia is entering a recession and I had my doubts about being able to line up a new job next April because of it... Am I too paranoid?5
-
So today we were notified that the schools in our sector will be closing next Monday for an unknown amount of time...
The building where my office is, will also be closing...
The fuck!!! I have 3 lovely monsters... No way to run, to hide, to be in peace!!!! THE WHOLE FUCKING DAY!! FOR WEEKS!!!!6 -
I'm working again with blue prism on a very very old SAP website. A hundred thousand nested iframes with a hundred thousand nested tables.
Please kill me, I long for the sweet embrace of death5 -
Turns out the only thing that was ever needed in order to get IT to fix the VPN was a pandemic outbreak.4
-
So we have a confluence page all about best practices (there’s not even a lot in it) but when you check the repository, most rules are not followed 😭4
-
I get asked a lot of random questions. Today's climbs to the top ten:
"Does anybody own a hamster? Marketing is asking for one"2 -
So, I went right into working after getting my bachelors in computer science. The company I'm working for is overall pretty good, I think. My colleagues are really nice people, my chef is a super chill dude and overall its a nice workfield.
There are weeks or even months, when nothing happens though. I go to work, fight through boredom and tiredness and go home. I had several months in the last year where I didn't write a single line of code.
Is this normal? Should I come to terms with this?
I didn't become a software developer to basically sell my lifetime.10 -
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 -
Today is my last day at my current employer(a big german insurance company, boring af) and next monday I start at a medium sized company in an R&D position 😁3
-
I just remembered the first time I set up a Linux-Server. It was a simple Apache webserver at my first internship anf I didnt have a clue about literally anything.
My mentor guided me through and gave me literal step-by-step instructions (alright, now type... and now type...).
At the end he told me "OK, now run 'sudo rm -rf /*' to finish setting up". Me, being the naive and clueless motherfucker I am, happily nuked the everloving shit out of my newly setup server. I was like "Alright, WTF just happened??" He then told me "Now that you know how it works, do the entire thing again all by yourself. And you just learned an important lesson: NEVER exexute commands you dont know what theyre doing". I really did learn a lot on that day and still follow that lesson :D8