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 - "new dev environment"
-
This is when writing a script that sets up your dev environment pays off...
Having 6 new employees join our startup. The script installs pretty much all dev tools and apps as well as sets up the device management profiles. 😎24 -
LONG RANT AHEAD!
In my workplace (dev company) I am the only dev using Linux on my workstation. I joined project XX, a senior dev onboarded me. Downloaded the code, built the source, launched the app,.. BAM - an exception in catalina.out. ORM framework failed to map something.
mvn clean && mvn install
same thing happens again. I address this incident to sr dev and response is "well.... it works on my machine and has worked for all other devs. It must be your environment issue. Prolly linux is to blame?" So I spend another hour trying to dig up the bug. Narrowed it down to a single datamodel with ORM mapping annotation looking somewhat off. Fixed it.
mvn clean && mvn install
the app now works perfectly. Apparently this bug has been in the codebase for years and Windows used to mask it somehow w/o throwing an exception. God knows what undefined behaviour was happening in the background...
Months fly by and I'm invited to join another project. Sounds really cool! I get accesses, checkout the code, build it (after crossing the hell of VPNs on Linux). Run component 1/4 -- all goocy. run component 2,3/4 -- looks perfect. Run component 4/4 -- BAM: LinkageError. Turns out there is something wrong with OSGi dependencies as ClassLoader attempts to load the same class twice, from 2 different sources. Coworkers with Windows and MACs have never seen this kind of exception and lead dev replies with "I think you should use a normal environment for work rather than playing with your Linux". Wtf... It's java. Every env is "normal env" for JVM! I do some digging. One day passes by.. second one.. third.. the weekend.. The next Friday comes and I still haven't succeeded to launch component #4. Eventually I give up (since I cannot charge a client for a week I spent trying to set up my env) and walk away from that project. Ever since this LinkageError was always in my mind, for some reason I could not let it go. It was driving me CRAZY! So half a year passes by and one of the project devs gets a new MB pro. 2 days later I get a PM: "umm.. were you the one who used to get LinkageError while starting component #4 up?". You guys have NO IDEA how happy his message made me. I mean... I was frickin HIGH: all smiling, singing, even dancing behind my desk!! Apparently the guy had the same problem I did. Except he was familiar with the project quite well. It took 3 more days for him to figure out what was wrong and fix it. And it indeed was an error in the project -- not my "abnormal Linux env"! And again for some hell knows what reason Windows was masking a mistake in the codebase and not popping an error where it must have popped. Linux on the other hand found the error and crashed the app immediatelly so the product would not be shipped with God knows what bugs...
I do not mean to bring up a flame war or smth, but It's obvious I've kind of saved 2 projects from "undefined magical behaviour" by just using Linux. I guess what I really wanted to say is that no matter how good dev you are, whether you are a sr, lead or chief dev, if your coworker (let it be another sr or a jr dev) says he gets an error and YOU cannot figure out what the heck is wrong, you should not blame the dev or an environment w/o knowing it for a fact. If something is not working - figure out the WHATs and WHYs first. Analyze, compare data to other envs,... Not only you will help a new guy to join your team but also you'll learn something new. And in some cases something crucial, e.g. a serious messup in the codebase.11 -
When I was in the army I wasn't officially a dev. But one commander needed someone to develop a bunch of stuff and couldn't get a dev officially, so I ended up as his "assistant", which was an awesome job with about 60% time spent on software development.
Except I wasn't an official developer, so I wasn't afforded many of the privileges developers get, like a slightly more powerful machine, a copy of Visual Studio, or an internet connection. In this environment you couldn't even download files and transfer the to your computer without a long process, and I couldn't get development tools past that process anyway.
So I was stuck with whatever dev tools I had pre-installed with Windows. Thankfully, I had the brand new Windows XP, so I had the .Net framework installed, which comes with the command line compiler csc. I got to work with notepad and csc; my first order of business: write an editor that could open multiple files, and press F5 to compile and run my project.
Being a noob at the time, with almost no actual experience, and nobody supervising my work, I had a few brilliant ideas. For example, I one day realized I could map properties of an object to a field in a database table, and thus wrote a rudimentary OR/M. My database, I didn't mention, was Access, because that didn't need installation. I connected to it properly via ADO.NET, at least.
The most surprising thing though, in retrospect, is the stuff I wrote actually worked.14 -
Seven months ago:
===============
Project Manager: - "Guys, we need to make this brand new ProjectX, here are the specs. What do you think?"
Bored Old Lead: - "I was going to resign this week but you've convinced me, this is a challenge, I never worked with this stack, I'm staying! I'll gladly play with this framework I never used before, it seems to work with this libA I can use here and this libB that I can use here! Such fun!"
Project Manager: - "Awesome! I'm counting on you!"
Six months ago:
====================
Cprn: - "So this part you asked me to implement is tons of work due to the way you're using libA. I really don't think we need it here. We could use a more common approach."
Bored Old Lead: - "No, I already rewrote parts of libB to work with libA, we're keeping it. Just do what's needed."
Cprn: - "Really? Oh, I see. It solves this one issue I'm having at least. Did you push the changes upstream?"
Bored Old Lead: - "No, nobody uses it like that, people don't need it."
Cprn: - "Wait... What? Then why did you even *think* about using those two libs together? It makes no sense."
Bored Old Lead: - "Come on, it's a challenge! Read it! Understand it! It'll make you a better coder!"
Four months ago:
==============
Cprn: - "That version of the framework you used is loosing support next month. We really should update."
Bored Old Lead: - "Yeah, we can't. I changed some core framework mechanics and the patches won't work with the new version. I'd have to rewrite these."
Cprn: - "Please do?"
Bored Old Lead: - "Nah, it's a waste of time! We're not updating!"
Three months ago:
===============
Bored Old Lead: - "The code you committed doesn't pass the tests."
Cprn: - "I just run it on my working copy and everything passes."
Bored Old Lead: - "Doesn't work on mine."
Cprn: - "Let me take a look... Ah! Here you go! You've misused these two options in the framework config for your dev environment."
Bored Old Lead: - "No, I had to hack them like that to work with libB."
Cprn: - "But the new framework version already brings everything we need from libB. We could just update and drop it."
Bored Old Lead: - "No! Can't update, remember?"
Last Friday:
=========
Bored Old Lead: - "You need to rewrite these tests. They work really slow. Two hours to pass all."
Cprn: - "What..? How come? I just run them on revision from this morning and all passed in a minute."
Bored Old Lead: - "Pull the changes and try again. I changed few input dataset objects and then copied results from error messages to assertions to make the tests pass and now it takes two hours. I've narrowed it to those weird tests here."
Cprn: - "Yeah, all of those use ORM. Maybe it's something with the model?"
Bored Old Lead: - "No, all is fine with the model. I was just there rewriting the way framework maps data types to accommodate for my new type that's really just an enum but I made it into a special custom object that needs special custom handling in the ORM. I haven't noticed any issues."
Cprn: - "What!? This makes *zero* sense! You're rewriting vendor code and expect everything to just work!? You're using libs that aren't designed to work together in production code because you wanted a challenge!?? And when everything blows up you're blaming my test code that you're feeding with incorrect dataset!??? See you on Monday, I'm going home! *door slam*"
Today:
=====
Project Manager: - "Cprn, Bored Old Lead left on Friday. He said he can't work with you. You're responsible for Project X now."24 -
Took yesterday off to sort out a new passport.
Today on the stand:
Manager: "So we've been trying to get app X running on a dev environment for client X but we couldn't expose it to them"
Me: "Well yeah it's a dev environment if you want to give them one give them access to staging"
Manager: "Oh well we're still going to give them access to dev because they asked for it. It's due for 10am but we couldn't get it to run. You have to get it running since we edited the config files"
*accessing dev environment*
half of config files is missing, random files committed to the repo, SSL certs manually edited, eth0 down and found swan vpn installed.
never taking a day off again.1 -
Demoing a new feature in the Dev environment.
Me: The images are just placeholders. The communications team are still coming up with appropriate images.
Management: Can we change that image? It doesn't really fit the theme of what we are trying to achieve.
Me: As mentioned earlier, all images are just placeholders. Continues demo.
Management: That image also doesn't really fit with the theme. Can we change that one too?
Me: 🙄6 -
This one is for devs and gamers.
But first some background story.
My girlfriend is special. Not just generically lovey mush mush special. She is 1 in 100 more accurately 1 in 10000. She was born with a rare Congenital Heart Defect {CHD}. Called Truncus Arteriosus or TA for sake of brevity. TA's main thing is the two main arteries going into the heart are fused together and never seperated at birth. It's bad news. There is no cure for this kind of thing. Simply repairs that happen over the course of life.
So here is me. Desperately trying to find a way to get the word about this and the 40 other types of CHD out there in the world. I thought. "What if I make a game..." Not based around the medical jargon but on a level people could understand. I spent the better part of the last six years attending appointments with her and still don't get it. What I do get is her Emotional state. How her CHD causes her to think and feel.
So here is the pitch.
The game is about a girl who is diagnosed at birth with a CHD. She is now in her 20's and has to undergo an open heart surgery to repair the defect. The day comes. She goes under but when she wakes up she find herself in a final fantasy style environment. This new world has a darkness cast over it. She is unknowingly the hero of this world and she has to face off with multiple bosses of varied degrees of evil.
Then after beating these bosses she really wakes up from the surgery. Waking up to the realization that the world she saved was herself. And all the bosses were manifestations of her own internal feelings. Depression, anxiety, hopelessness, Denise, desire and so on.
I would sell this game with the caveat that 2/3 of all profits get split between the Adult Congenital Heart Association and Project Heart. As those are the two main organizations that deal heavily with creating standards of care and raising awareness for CHD survivors.
Thoughts?
Note: I am still learning game dev. This is an eventual goal for me.33 -
Sometime in mid 2013 or 2014 as a junior dev I woke up to a call from my company's CEO. He informed me that the legacy system they use for order processing is down nationwide that nobody can add new orders until it's fixed and that I needed to fix it. I had been working there 6 months and was hired along with a senior dev to begin developing a web app to replace this legacy system. The senior dev had left the company two weeks earlier for a better offer so it was put on me to figure it out. I was very frank with the CEO and told him I didn't know if I could fix it and suggested he try to call the company they hired to create it. I didn't even know where the source code was let alone what the design paradigm was or whether or not there was any documentation. He said he would try figuring out who created it and give them a call and asked "As a developer you shouldn't you be able to fix this?" I just told him it wasn't that simple and left it at that.
I get to work and the CEO has discovered that the company who created the software no longer exists and I tell him he may need to find a company to consult on this if I can find the source code and if I can't find the code he might be screwed.
I found the source code in a random IT shared folder there is no source control, no documentation, no unit tests, no test environment, and it looks like nobody had touched it since 2005 or about 8 years.
Despite being completely unfamiliar with the code and the design paradigm I was able to figure out that they were validating customer addresses against an old Google geocoding API that was shutdown the day before and the lack of response was killing the application. I fixed the issue and warned the CEO before deployment that I wasn't able to test but he said to go ahead and thankfully all went well.9 -
Day 1:
Me: 'Hi'
Middleware guy: 'Raise a Jira. We have always been so accommodating. Contact your manager.'
*Jeez*
===
Day 2:
Me: 'Could you please start the server in dev environment? I am a new joiner. I don't have access. Here is a jira.'
Middleware guy: 'Deadlines may be for you. It is not for me. Wait until tomorrow.'
*Damn, did he get a divorce recently?*
===
Day 5: *An urgent delivery asap* 'Hi, could you please do the configuration of the new app in staging?'
Middleware guy: 'So, here is the split up...
Task 1
Task 2
Task 3
Task 4
Task 5 & 6
Your app will be configured by tomorrow first half hopefully.. Oh and you can escalate if it is too late..
'
*What a b...*
===
Day 8:
Me: *Doing late sit for pushing a task* 'Hi, we have an issue. The server is not starting. Could it be due to..'
MW guy in 'second' shift: 'Oh, we don't extend support on unusual hours'
Me: 'But this is second shift.'
MW guy: 'Yeah, but I have to go home early now...'
====
Day 10:
Team Lead: 'Any innovative solutions?'
Me: 'Let's go SERVERLESS!' :D12 -
The riskiest dev choice...
How about "The riskiest thing you've done as a dev"? I have a great entry for that. and I suppose it was my choice to build the feature afterall.
I was working on an instance of a small MMO at a game company I worked for. The MMO boasted multiple servers, each of them a vastly different take on the base game. We could use, extend, or outright replace anything we wanted to, leading to everything from Zelda to pokemon to an RP haven to a top-down futuristic counterstrike. The server in this particular instance was a fantasy RPG, and I was building it a new leveling and experience system with most of the trimmings. (Talents, feats/perks, etc. were in a future update.)
A bit of background, first: the game's dev setup did not have the now-standard dev/staging/prod servers; everything ran on prod, devs worked on prod, players connected and played on prod, etc. Worse yet, there was no backup system implemented -- or not really. The CTO was really the only person with sufficient access. The techy CEO did as well, but he rarely dealt with anything technical except server hardware, occasionally. And usually just to troll/punish us devs (as in "Oops ! I pulled the cat5 ! ;)"). Neither of them were the most reliable of people, either. The CTO would occasionally remote in and make backups of each server -- we assumed whenever he happened to think of it -- and would also occasionally do it when asked, but it could take him a week, sometimes even up to a month to get around to it. So the backups were only really useful for retreiving lost code and assets, not so much for player data.
The lack of reliable backups and the lack of proper testing grounds (among the plethora of other issues at the company) made for an absolutely terrible dev setup, but that's just how it was, and that's what we dealt with. We were game devs, afterall. Terrible or not, we got to make games! What more could you ask for!? It was amazing and terrible and wonderful and the worst thing ever, all at the same time. (and no, I'm not sharing the company name, but it isn't EA or Nexon, surprisingly 😅)
Anyway, back to the story! My new leveling system also needed to migrate players' existing data, so... you can see where this is going.
I did as much testing and inspection of my code as I could, copied it from a personal dev script to the server's xp system, ... and debated if I really wanted to click [Apply]. Every time I considered it, I went back to check another part or do yet more testing. I ended up taking like 40 minutes to finally click it.
And when I did... that was the scariest button press of my life. And the scariest three seconds' wait afterwards. That one click could have ruined every single player's account, permanently lost us players ...
After applying it, I immediately checked my character to see if she was broken, checked the account data for corruption or botched flags, checked for broken interactions with the other systems....
Everything ended up working out perfectly, and the players loved all of the new features. They had no idea what went into building them, and certainly had no idea of what went into applying them, or what could have gone wrong -- which is probably a good thing.
Looking back, that entire environment was so fragile, it's a wonder things didn't go horribly wrong all the time. Really, they almost never did. Apocalypses did happen, but were exceedingly rare, and were ususally fixed quickly. I guess we were all super careful simply because everything was so fragile? or the decent devs were, at least. We never trusted the lessers with access 😅 at least on the main servers where it mattered. Some of the smaller servers... well, we never really cared about those.
But I'm honestly more surprised to realize I've never had nightmares of that button click. It was certainly terrifying enough.
But yay! Complete system overhaul and migration of stored and realtime player data! on prod! With no issues! And lots of happy players! Woooooo!
Thinking back on it makes me happy 😊rant deploying straight to prod prod prod prod dev server? dev on prod you chicken migration on prod wk149 git? who's a git? you're a git! scariest deploy ever game development1 -
Most satisfying bug I've fixed?
Fixed a n+1 issue with a web service retrieving price information. I initially wrote the service, but it was taken over by a couple of 'world class' monday-morning-quarterbacks.
The "Worst code I've ever seen" ... "I can't believe this crap compiles" types that never met anyone else's code that was any good.
After a few months (yes months) and heavy refactoring, the service still returned price information for a product. Pass the service a list of product numbers, service returns the price, availability, etc, that was it.
After a very proud and boisterous deployment, over the next couple of days the service seemed to get slower and slower. DBAs started to complain that the service was causing unusually high wait times, locks, and CPU spikes causing problems for other applications. The usual finger pointing began which ended up with "If PaperTrail had written the service 'correctly' the first time, we wouldn't be in this mess."
Only mattered that I initially wrote the service and no one seemed to care about the two geniuses that took months changing the code.
The dev manager was able to justify a complete re-write of the service using 'proper development methodologies' including budgeting devs, DBAs, server resources, etc..etc. with a projected year+ completion date.
My 'BS Meter' goes off, so I open up the code, maybe 5 minutes...tada...found it. The corresponding stored procedure accepts a list of product numbers and a price type (1=Retail, 2=Dealer, and so on). If you pass 0, the stored procedure returns all the prices.
Code basically looked like this..
public List<Prices> GetPrices(List<Product> products, int priceTypeId)
{
foreach (var item in products)
{
List<int> productIdsParameter = new List<int>();
productIdsParameter.Add(item.ProductID);
List<Price> prices = dataProvider.GetPrices(productIdsParameter, 0);
foreach (var price in prices)
{
if (price.PriceTypeID == priceTypeId)
{
prices = dataProvider.GetPrices(productIdsParameter, price.PriceTypeID);
return prices;
}
* Omitting the other 'WTF?' code to handle the zero price type
}
}
}
I removed the double stored procedure call, updated the method signature to only accept the list of product numbers (which it was before the 'major refactor'), deployed the service to dev (the issue was reproducible in our dev environment) and had the DBA monitor.
The two devs and the manager are grumbling and mocking the changes (they never looked, they assumed I wrote some threading monstrosity) then the DBA walks up..
DBA: "We're good. You hit the database pretty hard and the CPU never moved. Execution plans, locks, all good to go."
<dba starts to walk away>
DevMgr: "No fucking way! Putting that code in a thread wouldn't have fix it"
Me: "Um, I didn't use threads"
Dev1: "You had to. There was no way you made that code run faster without threads"
Dev2: "It runs fine in dev, but there is no way that level of threading will work in production with thousands of requests. I've got unit tests that prove our design is perfect."
Me: "I looked at what the code was doing and removed what it shouldn't be doing. That's it."
DBA: "If the database is happy with the changes, I'm happy. Good job. Get that service deployed tomorrow and lets move on"
Me: "You'll remove the recommendation for a complete re-write of the service?"
DevMgr: "Hell no! The re-write moves forward. This, whatever you did, changes nothing."
DBA: "Hell yes it does!! I've got too much on my plate already to play babysitter with you assholes. I'm done and no one on my team will waste any more time on this. Am I clear?"
Seeing the dev manager face turn red and the other two devs look completely dumbfounded was the most satisfying bug I've fixed.5 -
I started this new freelance project where I am building some android libraries for the client. Anyways, during meeting I was about to present my results and suddenly backend seemed to be down. I looked into the round "are your servers down?"
Team Lead: "Yeah our cto, also our only backend dev, is developing a new feature."
Me: "Okay but why is production down?",
Team Lead: "Ah dont worry we always test on production. We have a pretty solid hardware, we will even upgrade it soon!"
Me:"... How about you just separate your stage environments and have a develop environment?"
Client: "see, this is where our strength is. We dont need a develop stage we have very strong hardware and our backend is fully in PHP"
Thanks God I'm a freelancer3 -
After two extensive talks with a potential employer (they lasted for hours), I decided to accept the offer, although the salary was ~25% lower than at my previous job. Everything else sounded fantastic and I needed that desperately since at the previous company everything was toxic for years.
These new guys wanted a senior php dev because they had none of them, except only wordpress and drupal people who were not skilled enough to take other types of projects (they called them "custom php"). I liked it and thought I'm gonna shine there and quickly earn a raise because the agency will start earning more by getting projects that they were unable to even bid for.
First day at work and I got assigned to a new Drupal project, although it was supposed to be a simple restful API for a simple iOS app. It could be done in a week or less, with no rushing at all. But it had to be Drupal. And I happened to be around to hear that there is a queue of Drupal projects waiting. After 2 days leaving the office late and having my brain melted by nonsense I was looking at, I quit the job.
No offense to Drupal people, I really do admire you, but I just could not stand it after 8 years "doing custom php". It felt too much like being downgraded. But more than that I was pissed off by the fact that I have been shamelessly lied to and tricked to accept something I clearly said that I dont want.
This happened a year ago. I now earn 2.5x more money than those guys offered and work in a very healthy environment. In the meantime, I heard that the other guys shut their company down.2 -
Update - The 'devRant trans-oceanic 21st century message in a bottle' community project is progressing nicely.
There is terrific research being done by the team in a slack channel. It is a great fun learning experience.
We have taken the 2000 year old message in a bottle concept and are breaking new ground leveraging very cool technology. We are still in phase 1 but at a high level devRant's much coveted stress ball will cross the Atlantic Ocean in a bottle type encasing.
We will use satellite tracking and gps to track devie throughout the journey. We will use Arduino or a similar microprocessor. We may use sensors and gyros to monitor the surrounding environment for temperature and depth.
We are also studying ocean currents, shipping lanes, weather data and bottle materials to make the journey as smooth as possible.
This is an official devRant sponsored project. We encourage you and any dev friends to join the conversation. Below is a link to the original rant which has the Slack channel info.
The sun never sets on devRant and we love intriguing projects!
https://www.devrant.io/rants/3030148 -
Studying Multimedia Arts, we are required to take a couple of courses in basic web development. (PHP). Since its known as new media grrr 🙄
Coming from a webdev background, I have no problem understanding PHP. However other designers in my course do.
A friend messaged me asking me how to fix a problem while in the dev environment. She tried explaining her problem without any of the terms we use in our general communication. You can read the conversation below.14 -
This week Im firing a guy who I hired 5 weeks ago. I cant take it anymore. I setted up a nice environment for him and he keeps taking whole day sometimes two or three to do a 2 hour task. He came from electrical engineering background and never had a software dev job. As a person hes more creative type not logical based type. I dont have nor patience nor resources nor time to teach him basics that be could google but simply doesnt have the mindset to do. Sorry bill gates not everyone can learn how to code, or at least not everyone should.
Advice to other people hiring new hires: test the shit out of them before hiring, dont hire from gut. This guy was giving out a nerd vibe, but the only nerd thing that he has is nerdy puns, other than that as a software dev he know less than I did when I was 12 years old.25 -
Yep. So the dev teams boss says it's fine to run a production environment on a single Windows instance with the db on that same instance, which they already totally lost once from a reboot after an auto update before I came along tasked with fixing the cluster fuck they created.
This from a man who somehow runs a dev team while using gmail via the web because he can't use an email client, uses email to track tasks but can't because they get lost amongst his 3000+ unread emails, has a screen dirtier than a hookers vag on half priced Tuesday, and got a new laptop but had to get his daughter to set it up and transfer his data because he couldn't.
But ok... you have a degree, You must know what you're doing.
It's ok though, I'll keep covering your incompetent ass while you keep raping the company because no one listens.
Peoples ignorance and arrogance astounds me.4 -
How to block productivity:
I am currently a working student at a huge corporation and tasked to write some smallish java applications. Nothing unusual.
To actually be able to write and compile java programs I need a JDK.
Except that the last corporate update for java removed my jdk and left me with only a jre. It so happened that my admin rights ran out.
To be able to install a new jdk, I need elevated rights, which I need to request. The fucking problem is nobody of my department, who I could talk to, is here or online to accept the request.
Guess who is now sitting in front of his dysfunctional dev environment :/12 -
Back in the day, I joined a little agency in Cape Town, small team small office with big projects, projects they weren’t really supposed to take on but hey when the owner of a tech business is not a tech person they do weird things.
A month had passed and it was all good, then came a project from Europe, Poland to be specific. The manager introduced me to the project, it was a big brand - a segment of Lego, built on Umbraco (they should change the name to slowbraco or uhmmm..braco somewhere there) the manager was like so this one is gonna be quite a challenge and I remember you said you are keen on that, I was like hell yeah bring it on (genuinely I got excited) now the challenge was not even about complexity of the problem or code or algorithms etc you get my point… the challenge was that the fucking site was in polish - face palm 1 - so I am like okay code is code, its just content, and I already speak/familiar with 13 human languages so I can’t fail here ill get around it somehow. So I spin up IIS, do the things and boom dev environment is ready for some kick ass McCoding. I start to run through the project to dig into the previous dev’s soul. I could not relate, I could not understand. I could not read, I could not, I could not. - face palm 2 - This dude straight up coded this project in polish variable names in polish, class names in polish, comments in freaking polish. Look, I have no beef with the initial guy, its his language so why not right? sure. But not hey this is my life and now I should learn polish, so screw it, new tab - google translate, new notes, I create a dictionary of variables and class etc 3 days go by and I am fucking polish bro. Come at me. I get to read the previous devs soul through his comments, what a cool dude, his code wasn’t shit either - huge relief. So I rock on and make the required changes and further functionality. The project manager is like really, you did it? I am like yeah dude, there it is. Then I realise I wasn’t the first on this, this dude done tried others and it didn’t go down well, they refused. - face palm 3 -
Anyway, now I am a rock star in the office, and to project managers this win means okay throw him in the deep - they move me to huge project that is already late of course and apparently since I am able to use google translate, I can now defeat time, let the travelling begin. - face palm 4 - I start on the project and they love me on it as they can see major progress however poland was knocking on the door again, they need a whole chunk of work done. I can’t leave the bigger project, so it was decided that the new guy on Monday will start his polish lessons - he has no idea, probably excited to start a new job, meanwhile a shit storm is being prepared for him.
Monday comes, hello x - meet the team, team meets x
Manager - please join our meeting.
I join the meeting, the manager tells me to assist the new dev to get set up.
Me: Sure, did you tell him about he site?
Manager: Yes, I told him you knocked it out the park and now we just need to keep going
Me: in my head (hmm… that’s not what I was asking but cool I guess he will see soon enough -internal face palm 5 - ) New dev is setup, he looks at the project, I am ask him if he is good after like an hour he is like yeah all good. But his face is pink so I figured, no brother man is not okay. But I let him be and give him space.
Lunch time comes, he heads out for lunch. 1hr 15mins later, project manager is like, is the new dude still at lunch.
We are all like yeah probably. 2hrs pass 3hrs pass Now we are like okay maybe something happened to him, hit by a car? Emergency? Something… So I am legit worried now, I ask the manager to maybe give him a ring. Manager tries to call. NOTHING, no response. nada.
Next day, 8am, 9am, 10am no sign of the dude. I go to the manager, ask him what’s up. Manager: he is okay. However he said he is not coming back.7 -
So a few days ago I shared about the conflict with my colleague on learning React. Today I was let go. Obviously I asked why they would do that and they said they feel the problem isn't even my React knowledge but the fact I don't grasp the fundamentals of OO programming.
Thing is in these 3 months there has not been a single code review. They are either going of what my lying colleague told them (they claimed he was excluded from giving feedback), or the consultants who were hired to help us. And yes, I got feedback I should improve but at the same time the assurance so long as I show improvement it'd be fine. And I was told they could see improvement. So I'm not sure what changed but suddenly there is no budget to keep me on. In any case it feels like shitty corporate bullshit.
But I can't say they are wrong. I struggle to explain simple concepts I know in words. I've worked a series of bad jobs where nobody cared how you did stuff as long as it got done. I feel I'm so behind now and so affected by bad knowledge it's even harder to fix than to learn the first time. So I'm wondering how to fix this.
I'm really gutted too because I loved this company. I was finally getting a fair wage instead of being underpaid. The people were excellent. I felt I could finally relax and feel safe at work. And now I feel betrayed. Which for someone with self esteem issues is very hard. Can't trust in myself and can't trust in others.
I'm gonna try and pick myself up in the morning, but today I feel totally shit. This wasn't how I'd expected things to go. I thought my manager had intended to talk conflicts over but instead I get the boot. And the advice to stop overselling myself. Real useful that. Like it is on me that they hired me despite my subpar interview because my CV looked good. It's a shitty excuse. In any case they're now stuck with a dev that walks out of work, throws false accusations about colleagues, and another person warned me about to not engage because nothing good ever came from it. He's gonna keep over engineering everything and make up for all the time he wastes outside of work creating a dysfunctional environment for everyone. But yeah, easier to fire the new person who does her best despite the odds. And who cautioned against over engineering because we kept missing deadlines. And who believes in refactoring when it is needed because that's how agile works. Yeah better keep someone who has no sense of work life balance and makes others miserable then claiming he's being driven out by your ignorance. And of course the consultants who throw your own people under the bus. Can't get rid of those now.7 -
So, a few years ago I was working at a small state government department. After we has suffered a major development infrastructure outage (another story), I was so outspoken about what a shitty job the infrastructure vendor was doing, the IT Director put me in charge of managing the environment and the vendor, even though I was actually a software architect.
Anyway, a year later, we get a new project manager, and she decides that she needs to bring in a new team of contract developers because she doesn't trust us incumbents.
They develop a new application, but won't use our test team, insisting that their "BA" can do the testing themselves.
Finally it goes into production.
And crashes on Day 1. And keeps crashing.
Its the infrastructure goes out the cry from her office, do something about it!
I check the logs, can find nothing wrong, just this application keeps crashing.
I and another dev ask for the source code so that we can see if we can help find their bug, but we are told in no uncertain terms that there is no bug, they don't need any help, and we must focus on fixing the hardware issue.
After a couple of days of this, she called a meeting, all the PMs, the whole of the other project team, and me and my mate. And she starts laying into us about how we are letting them all down.
We insist that they have a bug, they insist that they can't have a bug because "it's been tested".
This ends up in a shouting match when my mate lost his cool with her.
So, we went back to our desks, got the exe and the pdb files (yes, they had published debug info to production), and reverse engineered it back to C# source, and then started looking through it.
Around midnight, we spotted the bug.
We took it to them the next morning, and it was like "Oh". When we asked how they could have tested it, they said, ah, well, we didn't actually test that function as we didn't think it would be used much....
What happened after that?
Not a happy ending. Six months later the IT Director retires and she gets shoed in as the new IT Director and then starts a bullying campaign against the two of us until we quit.5 -
While this wasn't technically a real client, it's still one of the most insane requests I've ever had.
I chose to specialize in software engineering for the last year and a half of my degree, which meant a lot of subjects were based around teamwork, proper engineering practises, accessibility, agile methods, basically a lot of stuff to get us ready to work in a proper corporate dev environment. One of our subjects was all about project management, and the semester-long coursework project (that was in lieu of a final exam) was to develop a real project for a real client. And, very very smartly, the professors set up a meeting with the clients so that the clients could tell us what they wanted with sixty-odd students providing enough questions. They basically wanted a management service for their day-center along with an app for the people there. One of the optional requirements was a text chat. Personally not something I'm super interested in doing but whatever, it's a group project, I'll do my part.
The actual development of the project was an absolute nightmare, but that's a story for another day. All I'll say is that seven juniors with zero experience in the framework we chose does not make a balanced dev team.
Anyway, like three months into the four-month project we've got a somewhat functional program, we just need to get the server side part running and are working our asses off (some more than others) when the client comes in and says that 'hey, nice app, nobody else has added the chat yet, but could you do voice recognition okay thanks?'.
Fucking.
Voice.
Recognition.
This was a fucking basic-ass management app with the most complicated task being 'make it look pretty' and 'hook up a DB to an API' and they want us to add voice recognition after sitting on their ass for three months??? The entire team collectively flipped its shit the second they were out of earshot. The client would not take no for an answer, the professor simply told us that they asked for it and it was up to us whether we delivered or not. Someone working on the frontend had the genius idea of 'just get them to use google voice recognition' so we added the how-to in the manual and ticked the requirement box.
What amazes me about all that is how the client probably had no idea that their new last-minute request was even a problem for us, let alone it being in a completely different ballpark in terms of implementing from scratch.8 -
Best code performance incr. I made?
Many, many years ago our scaling strategy was to throw hardware at performance problems. Hardware consisted of dedicated web server and backing SQL server box, so each site instance had two servers (and data replication processes in place)
Two servers turned into 4, 4 to 8, 8 to around 16 (don't remember exactly what we ended up with). With Window's server and SQL Server licenses getting into the hundreds of thousands of dollars, the 'powers-that-be' were becoming very concerned with our IT budget. With our IT-VP and other web mgrs being hardware-centric, they simply shrugged and told the company that's just the way it is.
Taking it upon myself, started looking into utilizing web services, caching data (Microsoft's Velocity at the time), and a service that returned product data, the bottleneck for most of the performance issues. Description, price, simple stuff. Testing the scaling with our dev environment, single web server and single backing sql server, the service was able to handle 10x the traffic with much better performance.
Since the majority of the IT mgmt were hardware centric, they blew off the results saying my tests were contrived and my solution wouldn't work in 'the real world'. Not 100% wrong, I had no idea what would happen when real traffic would hit the site.
With our other hardware guys concerned the web hardware budget was tearing into everything else, they helped convince the 'powers-that-be' to give my idea a shot.
Fast forward a couple of months (lots of web code changes), early one morning we started slowly turning on the new framework (3 load balanced web service servers, 3 web servers, one sql server). 5 minutes...no issues, 10 minutes...no issues,an hour...everything is looking great. Then (A is a network admin)...
A: "Umm...guys...hardly any of the other web servers are being hit. The new servers are handling almost 100% of the traffic."
VP: "That can't be right. Something must be wrong with the load balancers. Rollback!"
A:"No, everything is fine. Load balancer is working and the performance spikes are coming from the old servers, not the new ones. Wow!, this is awesome!"
<Web manager 'Stacey'>
Stacey: "We probably still need to rollback. We'll need to do a full analysis to why the performance improved and apply it the current hardware setup."
A: "Page load times are now under 100 milliseconds from almost 3 seconds. Lets not rollback and see what happens."
Stacey:"I don't know, customers aren't used to such fast load times. They'll think something is wrong and go to a competitor. Rollback."
VP: "Agreed. We don't why this so fast. We'll need to replicate what is going on to the current architecture. Good try guys."
<later that day>
VP: "We've received hundreds of emails complementing us on the web site performance this morning and upset that the site suddenly slowed down again. CEO got wind of these emails and instructed us to move forward with the new framework."
After full implementation, we were able to scale back to only a few web servers and a single sql server, saving an initial $300,000 and a potential future savings of over $500,000. Budget analysis considering other factors, over the next 7 years, this would save the company over a million dollars.
At the semi-annual company wide meeting, our VP made a speech.
VP: "I'd like to thank everyone for this hard fought journey to get our web site up to industry standards for the benefit of our customers and stakeholders. Most of all, I'd like to thank Stacey for all her effort in designing and implementation of the scaling solution. Great job Stacy!"
<hands her a blank white envelope, hmmm...wonder what was in it?>
A few devs who sat in front of me turn around, network guys to the right, all look at me with puzzled looks with one mouth-ing "WTF?"9 -
Been on a conference call with some coworkers and a huge company which is trying to sell us a new tool for our CI environment. Sales guys ask us sensible questions about our requirements and try to find out our needs. No one of my coworkers says a word. Sales guys rephrase their questions but STILL: Crickets on the line from our side and this call gets embarrassing. So I try to explain our SW dev process and explain what we need for our CI and suddenly Mr. Manager sends me a text msg telling me to to "STFU!"....Oh well THANK YOU, I just tried to be polite to these sales guys who were invited by US and took their time to present us their really good tool. I mean cmon...what is F*CKING WRONG with you?5
-
Have a couple I want to air today.
First was at my first gig as a dev, 4-5 months out of school. I was the only dev at a startup where the owner was a computer illiterate psycopath with serious temper tantrums. We're talking slamming doors, shouting at you while you are on the phone with customers, the works...
Anyways, what happened was that we needed to do an update in our database to correct some data on a few order lines regarding a specific product. Guess who forgot the fucking where-clause... Did I mention this boss was a cheap ass, dollar stupid, penny wise asshole that refused to have anything but the cheapest hosting? No backups, no test/dev/staging environment, no local copies... Yeah, live devving in prod, fucking all customers with a missing semi-colon (or where clause).
Amazingly, his sheer incompetance saved my ass, because even if I explained it, he didn't get it, and just wanted it fixed as best we could.
The second time was at a different company where we were delivering managed network services for a few municipalities. I was working netops at that time, mostly Cisco branded stuff, from Voice-over-IP and wifi to switches and some routing.
One day I was rolling out a new wireless network, and had to add the VLAN to the core switch on the correct port. VLAN's, for those who don't know, are virtual networks you can use to run several separated networks on the same cable.
To add a VLAN on a Cisco switch one uses the command:
switchport access vlan add XYZ
My mistake was omitting the 'add', which Cisco switches happily accept without warning. That command however can be quite disruptive as it replaces all of the excisting VLAN's with the new one.
Not a big deal on a distribution switch supplying an office floor or something, but on a fucking core switch in the datacenter this meant 20K user had no internet, no access to the applications in the DS, no access to Active Directory etc. Oh and my remote access to that switch also went down the drain...
Luckily a colleague of mine was on site with a console cable and access to config backups. Shit was over within 15 minutes. My boss at that time was thankfully a pragmatic guy who just responded "Well, at least you won't make that mistake again" when we debriefed him after the dust settled. -
Enjoying my new dev environment already.
This is a real install alongside my existing windows install. Surprisingly enough, windows has in no way complained about Arch!12 -
"CTO" here.
Two week ago the CEO informs me that the "investor" want to put me in contact urgently with an external software house to help me with my "bottlenecks".
The investor goes immediately on holiday, so it's not available for explanations. The CEO doesn't know much.
Today I meet the software house CTO and CEO.
They tell me that I should do a transfer of knowledge with them. That they will respect my requirements, my schedule and that they want to help me.
During the meeting the business consultant explains "his" vision. Some new development nobody understand. Not even the CEO. The other cofounder is probably in disagreement but stay silent.
I agree to cooperate with them in due time and with due scope and planning.
It appears they already signed a contract with the investor. The investor is offering to us 40 days of a senior developer, for "free".
The CEO doesn't even know the economical details of the contract and he is surprised that has been signed.He also didn't know that a person will come over for 40 (?) days and that we will have to pay the transfer expenses.
I try to be friendly. I explain to them the issues I need to solve. I say specifically that I need help on certain tasks and that my wish is that nothing "new" will start until we fix some obvious problems.
After leaving, in the evening I receive an email from the software house guy, telling me that next week I MUST allocate a slot for technical transfer and the 2 weeks after for on site training. Like that. He also mention we "agreed" on that which is false. We agreed on me deciding the timing.
We are only 2 developers, at the moment and the other one will be on holiday next week, so I'm trying to get from him a lot of things I don't know because I don't know everything.
I'm not even sure I'll be able to explain how to prepare all the environment.
Worst thing is that I don't know what will be the scope of the project.
I really don't know how to behave.
I wrote back setting my conditions. I have holiday too. I have to prepare "documentation", explanation, etc.
I don't want the "senior dev" coming when I'm not present.
Maybe I was too weak answering and I should have started a fight immediately. Because he actually AGREED to let me decide and after that he set conditions on me immediately.
I don't know.
My stomach is burning, I had a very bad digestion with fever and headache, feel like puking, plus I spent several evening hours fixing the fucking Linux kernel bug.
I want to survive. I don't want to let them oust me in this stupid way. I want to fight.
I know that if I will explode, scream or whatever I will be at fault and I'll accelerate my demise.
When I try to be "diplomatic" actually I end up being weak.
When I try to be assertive I'm in fact rude and hysterical.
I can't think anything else.
This is what burnout looks like.20 -
My co-worker, still studying but working as a "senior dev", just decided that we don't need a test/staging environment anymore. We just "validate" (we also don't use the word "test" anymore) newly created features in production.
Makes absolutely sense...
Thank god I have a new job from february on!1 -
My current new boss is pretty awesome. When he arrived, we were a lot of juniors dev crumbling under pressure. He directly went to product team and to sales team and totally reduced our workload to something acceptable.
He values sane work environment a lot, and I think that's what make a good boss -
I was debugging a new version of a calendar web app I've created, and was puzzled when the code for rendering calendar events was never hit...Till I realized, there are no calendar events this week in the dev environment. Silly me! *LOL*1
-
I just have to rant...
7 months ago, I was still a pretty new iOS developer, but finally coming into my own. My boss gave me my first feature ever... a fully custom backend tweaker for our development builds, complete with text fields that devs and testers alike could fill in themselves for whatever they needed to test. I worked harder on that than I’ve ever worked on anything... and I got to make all the decisions on how it looked, behaved, what exactly the user saw/read... everything.
A month ago the most senior dev on my team was asked to update the tool to prepare for a backend migration to a new server. He was then hired to work for Apple, hurried to finish this task, and left forever. (He deserves it, we probably were slowing him down realistically. But that doesn’t forgive the following...)
Unfortunately, he thought it’d be a good idea to remove my entire custom backend tool in the process. Not sure why— maybe he thought it was legacy code or something. He must not have tested either, because the entire backend selector stopped working after that. But that was no problem— I could fix the pre-filled environment buttons just by updating a few values.
It’s the fact that he removed 100+ lines of my custom code from 3 separate classes (including entirely removing one of those classes), for no known reason, and now I have to completely rebuild the feature. Since it was entirely custom, it required no change for our migration in the first place. But he rewrote how the entire view works by writing an entirely new VC, so there is no chance I can just restore my work as it was written.
And in the shared class, he erased every line with the word “custom.” So, so many lines of hard work, now irrelevant and only visible in old defunct versions. And my boss has asked me to “just make it look how it did before the migration.”
I know it’s useless to be angry at a guy who’s long gone, but damn. I am having a real hard time convincing myself to redo all this work. He removed every trace, and all I can think is WHY DID YOU DO THAT YOU FUCKING MONSTER? IT WAS MY GREATEST WORK, AND NOBODY ASKED YOU TO DESTROY IT. THIS WAS NOT EVEN RELATED TO THE TASK YOU WERE GIVEN, AND NOW A SIMPLE TICKET TO RESTRUCTURE A TOOL HAS BECOME A MANDATE TO REBUILD IT FROM SCRATCH.
Thank you for being here, devRant. I would’ve gotten myself into deep trouble long ago if I didn’t have this safe place to blow off steam 🙏4 -
So last week I really fucked up
I had this new implementation that was supposedly to be integrating smoothly into the rest of the service. It depended on a serialized model made by a data scientist. I test it in local, in QA environment: no problem.
So, Friday, 4pm, I decide to deploy to production. I check once from the app: the service throw an error. Panic attack, my chief is at my desk, we triy to understand what went wrong. I make calls with cUrls: no problem. Everything seems fine. I recheck from the app again: no problem.
We dedice to let it in prod, as the feature work. I go get some beers with the guys, to celebrate the deploy.
Fast-forward the next morning, 11am, my phone ring: it's a colleague of my chief. "Please check Slack, a client is trying to use the feature, it's broken"
FUUUUUUUUUUUUCK!!!
Panic attack again. I go to the computer, check the errors: two types of errors. One I can fix, the other from a missing package on the machine that the data guy used.
Needless to say, I had a fairly good weekend.
Lessons learned:
- make sure Dev, QA and Prod are exactly the same (use Ansible or Container)
- never deploy on a Friday afternoon if you don't have a quick way to revert1 -
My internship is about to end in two months. I was under the impression that I'll start looking for a job towards mid August and then decide what to do. I didn't expect my company to offer me a position so early before my internship ended.
Initially I had liked the place. The work was pretty relaxed and I had quite a bit of freedom. Soon enough, I proved my worth and my team started respecting my opinions and suggestions. They even consulted me on multiple occasions.
The first thing I noticed on the downside was the company, despite being resourceful enough and having a decent turnover and important clients, was quite stingy in terms of employee welfare. There was no coffee. There was machine but you had to buy the capsule for yourself. And that sucks. I know I don't need to say more but the other problems were there was no enterprise subscription (or any subscription) to PhpStorm even though our team handled so many PHP projects. I know IDEs are personal preferences but not having any professional IDEs is not something to let slide. The lead dev uses NetBeans (and not because he loved it or anything). Even though I worked on WebDev and front end, I had no option to ask for a second screen. I had one display apart from my laptop. Usually most companies in Paris provides food tickets for internships and this company did not even give me that. And worst of all, there wasn't really anyone I looked up to. As much as I enjoy responsibilities and all, I don't think I should be in an environment where I have nothing much to learn from my seniors. For some fucked sense of security and certainty, I was willing to overlook all this when they offered me a position. But I recently had my interview and the regional manager, a fuck face who still makes me wonder how he reached his position, made a proposal for some quite a small amount of salary. What infuriated more than his justifications was his attitude itself. There was absolutely no respect whatsoever. It was more like "We'll give you this, I think this is more than enough for you. Take it or do whatever you want". I asked for more and he didn't even bother negotiating. I declined the offer.
Now this would have solved all the issues. But my manager and my lead dev like me a lot. Both of them are pretty nice people. They both were bothered with the fact that I had turned down the offer. My manager even agreed that the offer was too low and had already given me tips to help me negotiate. But after I turned down the offer, she went and discussed the issue with the regional manager and he offered me a new proposal. This time it was decent but still under my expectations. I'm pretty sure I can do better elsewhere. I said I need time to think about it. I get multiple advises from people to take it atleast so that I get my visa converted to a work permit. For some reason, I want to take the risk and say no. And find something else. But today my lead dev called me aside and asked me if was going to say no. He really tried to influence me by telling me a lot of good things about me and telling me about the number of different projects we're going to start next month and all that. Even though I'm fully convinced that I don't want to work here, just the sheer act of saying no to these two people I respect is sooo fucking difficult for me that I can already imagine me working here for the next one year. The worst part is I can clearly classify their words and sentences into stuff they say to canvass me, stuff they're bullshitting about and flattery just to make me stay. Despite knowing I'm being taken advantage of, some fucked up module in my head wouldn't stop guilt tripping me. I don't know what to do. If I only I could find a really better job.
Pardon the grammatical errors if any. I'm just venting out and my thoughts branch in 500 different ways simultaneously.5 -
Next week I'm starting a new job and I kinda wanted to give you guys an insight into my dev career over the last four years. Hopefully it can give some people some insight into how a career can grow unexpectedly.
While I was finishing up my studies (AI) I decided to talk to one of these recruiters and see what kind of jobs I could get as soon as I would be done. The recruiter immediately found this job with a Java consultancy company that also had a training aspect on the side (four hours of training a week).
In this job I learned a lot about many things. I learned about Spring framework, clean code, cloud deployment, build pipelines, Microservices, message brokers and lots more.
As this was a consultancy company, I was placed at different companies. During my time here I worked on two different projects.
The first was a Microservices project about road traffic data. The company was a mess, and I learned a lot about company politics. I think I never saw anything I built really released in my 16 months there.
I also had to drive 200km every day for this job, which just killed me. And after far too long I was finally moved to the second company, which was much closer.
The second company was a fintech startup funded by a bank. Everything was so much better than the traffic company. There was a very structured release schedule, with a pretty okay scrum implementation. Every team had their own development environment on aws which worked amazingly. I had a lot of fun at this job, with many cool colleagues. And all the smart people around me taught me even more about everything related to working in software engineering.
I quit my job at the consultancy company, and with that at the fintech place, because I got an opportunity I couldn't refuse. My brother was working for Jordan Belfort, the Wolf of Wallstreet, and he said they needed a developer to build a learning platform. So I packed my bags and flew to LA.
The office was just a villa on the beach, next to Jordan's house. The company was quite small and there were actually no real developers. There was a guy who claimed to be the cto of the company, but he actually only knew how to do WordPress and no one had named him cto, which was very interesting.
So I sat down with Jordan and we talked about the platform he wanted to build. I explained how the things he wanted would eventually not be able with WordPress and we needed to really start building software and become a software development company. He agreed and I was set to designing a first iteration of the platform.
Before I knew it I was building the platform part by part, adding features everywhere, setting up analytics, setting up payment flows, monitoring, connecting to Salesforce, setting up build pipelines and setting up the whole aws environment. I had to do everything from frontend to the backest of backends. Luckily I could grow my team a tiny bit after a while, until we were with four. But the other three were still very junior, so I also got the task of training them next to developing.
Still I learned a lot and there's so much more to tell about my time at this company, but let's move forward a bit.
Eventually I had to go back to the Netherlands because of reasons. I still worked a bit for them from over here, but the fun of it was gone without my colleagues around me, so I quit last September.
I noticed I was all burned out, had worked far too much, so I decided to take a few months off and figure out what I wanted to do with my life. I even wondered whether I wanted to stay in programming.
Fast forward to last few weeks. I figured out I actually did want to work in software still, but now I would focus on getting the right working circumstances. No more driving 3 hours every day, no more working 12 hours every day. Just work close to home and find a company with the right values.
So I started sending out resumes and I gave one recruiter the chance to arrange some interviews too. I spoke to 7 companies in the span of one week. And they were all very interested. Eventually I narrowed it down to 2 companies and asked them for offers. And the company that actually had my preference offered me significantly more than I asked for, which settled the deal.
So tomorrow I'm officially signing with them, and starting next week I'll be developing in Kotlin, diving into functional programming and running our code in serverless environments. I'm very excited! -
story which happened yesterday and ended in mixed emotions
big changes in our company were announced, non tech employees changed positions, new business plan, people changing teams, shattering my plans of relocation back to my home country on the end of this year... told my manager I'm not happy, scheduled a call with manager on the highest position I'm in contact with
the call BB - big boss
BB: things are changing, it was decided like this, must be like this, can't do anything with it, other manager bla bla
ME: yes, but you knew I wanted to relocate, now my only option of relocating is to leave the company
BB: well, yes, thats unfortunate, but we would like you to stay, manager bla bla about growth, good work environment
ME: yes, but you're leaving me in this team as a only developer with people who not just don't have any tech background, they don't have a clue about dev stuff, like... at all * me = very not happy *
BB: but you know all our systems and work processes which will stay in place and you can teach new people, we need you * stopped, because probably realised what he said *
ME: * arrogant little laugh * well, i mean, I think i can live with it, but really wanted to talk about this, so you guys know I don't agree with what is happening here
BB: * sigh * ok, well.. yes, I mean, we were counting on this, we can give you a raise, but not much, maybe x%
ME: x% sounds good, I guess I can learn to live with this situation for a while
* everybody laughs *8 -
A service had/has been logging hundreds of errors in the development environment and I reached out to the owning process mgr that the error was occurring and perhaps a good opportunity to log additional data to help troubleshoot the issue if the problem ever made its way to production. He responded saying the error was related to a new feature they weren't going to implement in the backing dev database (TL;DR), and they know it works in production (my spidey sense goes off).
They deployed the changes to production this morning and immediately starting throwing errors (same error I sent)
Mgr messaged me a little while ago "Did you make any changes to the documentation service? We're getting this error .."
50% sure someone misspelled something in a config, but only thing they are logging is 'Unable to parse document'. Nothing that indicates an issue with the service they're using.2 -
I may not be a dev... (learning in my off time though, best thing ever) but I have been responsible for the computer system validation, requirements definitions and planning of a new piece of software that will have a major increase in effeciency for a division consisiting of over half our companies employees.
For months it has been a painful process. I have had night terrors, immense pressure on my head all the while thinking we are getting to that final goal (live deployment), and the light at the end of the tunnel has just seemed to be getting further and further away... Like a donkey chasing a carrot on a stick.
After all the grey hairs, stress and drinking I am finally going to deploy this thing to the live environment tomorrow. Funny thing is its the part of this process that managers are stressing about and I am here like... Oh wow my Friday just got a whole lot better1 -
Working with a new team and I don't understand how this is normal or ok.
Me: Does anyone need help troubleshooting the broken build or can I revert this change that broke it so I can push my change out?
Dev: Stop build shaming me, I wouldn't leave the build in a failing state.
Me: Well, I wasn't sure how long to wait, before asking.... it's been broken for 4 hours.
Dev: It's the development environment, you should expect development to be going on.
Me: Yes and appears that this project architecture doesn't support any sort of isolation for development. So nobody can deploy anything except through the development branch.
Dev: That's what development is for IMO, so it doesn't bother me.11 -
They've been in a meeting with some clients the whole morning.
12PM, time for me to go. Say Happy New Year and am on my way home.
12:20 Got home, took shirt off, got something to eat from the fridge.
12:22 Bit the first slice of pizza. Phone rings.
- "Yo' we wanted to show them app 2 but I can't log in."
+ "I left the laptop (and the whole dev environment) there, and there's no PC on in my house (and no dev environment whatsoever)."
- "Well check with your phone. [SIC] Tell me when you fix it."
12:32 I had turned my personal computer on; checked the problem was what I imagined (unpkg lib with no version defined on the link had a new major/non-retrocompatible version); grabbed an online FTP tool; remembered IP, user & password; edited the single line that caused the problem; and checked it worked. Calling back.
+ "It's fixed."
- "Thanks!"
12:38 CEO sent me an image of the app not working, due to a known bug.
+ "That happens if you try to access app 1 having accessed app 2 and not logging off." (app 2 isn't being used / sold, as it's still in development) "Try logging off and logging in again from app 1."
- * radio silence *
+ * guess they could get in *
They had the whole freaking morning. 😠
I'm the hero CMMi's level one warns you about. But at what cost.
Happy early New Year's Eve everyone.2 -
Treat software development like a trade. Because it is one.
Would you hire someone to build a shed for you if you needed to supply the hammer and saw and they needed to read a "How to Build Sheds" book to just get started? No, you wouldn't.
So why would you hire someone that doesn't have any kind of ready-to-go dev environment?
Why would you hire someone that doesn't understand the basics of this field?
Why do you expect employees to stop what they are doing and teach the new guy everything he should already know, or be able to figure out on his own based on his own experience?23 -
New twist on an old favorite.
Background:
- TeamA provides a service internal to the company.
- That service is made accessible to a cloud environment, also has a requirement to be made available to machines on the local network so you can develop against it.
- Company is too cheap/stupid to get a s2s vpn to their cloud provider.
- Company also only hosts production in the cloud, so all other dev is done locally, or on production non-similar infra, local dev is podman.
- They accomplish service connectivity by use of an inordinately complicated edge gateway/router/firewall/message translator/ouija board/julienne fry maker, also controlled by said service team.
Scenario:
Me: "Hey, we're cool with signing requests using an x509 cert. That said, doing so requires different code than connecting to an unsecured endpoint. Please make this service accessible to developer machines and lower environments on the internal network so we can, you know, develop."
TeamA: "The service should be accessible to [cloud ip range]"
Me: "Yes, that's a production range. We need to be able to test the signing code without testing in production"
TeamA: "Can you mock the data?"
Me: "The code we are testing is relating to auth, not business logic"
TeamA: "What are you trying to do?"
Me: "We are trying to test the code that uses the x509 you provide to connect to the service"
TeamA: "Can you deploy to the cloud"
Me: "Again, no, the cloud is only production per policy, all lower environments are in the local data center"
TeamA: "can you try connecting to the gateway?"
Me: "Yes, we have, it's not accessible, it only has public DNS, and only allows [cloud ip range]"
TeamA: "it work when we try it"
Me: "Can you please supply repro steps so we can adjust our process"
TeamA: "Yes, log into the gateway and try issuing the call from there"
Me: (╯°□°)╯︵ ┻━┻
tl;dr: Works on my server -
Day 1 of a new semester in college. Our 50 yr old H.O.D is a guest lecturer of this new subject called "Industrial Management" (why its included in the syllabus of CSE degree i wonder) . As there were only 6 students , the guy went on like a drunkard telling life lessons :
1) only 20% of the people in a company are only working. Rest 80% of them are just using sugar coated words at the right place ; doing politics and taking credits of the others .
2) those 80% getting benefits are usually the bosses (and in his example, the senior deans and H.O.Ds buttering the administrative dept and director ) and the hardworking 20% are the Juniors or the new joiners ( and in his example, the latest recruited ,honest teachers. Makes sense why we have shitty teachers :/ ). They altogether make sucesses to the company(although its just those 20%hardworkers doing the actual job) . But at the time of salary everybody gets the benfit.
3) Its always perfect to throw blames at senior or junior. (explaining how a parent complaining about the poor study environment to director is made to think that it's only the fault of his own child. blames going from director to dean to HOD to teachers to your own child's mistakes.)
4) Being your boss's favourite is super important. He gave example as : 2 teachers meets him with 100% results and 100% reviews. One of them is a known asshole with 0 knowledge, who makes jokes and sexist comments during the class, gives free attendence and question papers before the exam{therefore 100%reviews} . But he is dean's great ass-licker . The other one is honest hard-working teacher with real reviews and results. So he says he shows their combine results to the director along with his own buttering and ass licking, gets a hike himself and permit to give hije to one junior teacher. And who would it give hike to? The ass licking asshole, because that's how it works. What about the honest teacher?what reply would he get? Simply, appreciations and sugar coated words : "thank you for working so hard. But you did not do anything new. You were only hired to DO hardwork and give good results"
( and i was like fuck? Like seriously? Because that is something resonating with what i once heard in my internship :"yeah you are developing nice and all good, but that's what you are expected to do. You were only hired to achieve results, and you did nothing new". So that's what we are missing? Ass licking?-_- )
5) He believed its important to "look working" than being "actually working" . Quoting an example from his days as a dev, he told a story about how he once worked on a project with deadline of 1 month . He was young and worked hard and in 2 days completed the complete project and accidentally reported success to boss instead of his seniors. The boss simply congratulated his team(seniors and him) and assigned them another project. Later that day , he got an ass-wipe scolding from his seniors that if he had kept his mouth shut, they would have simply watched movies and relax for next 15 days, and submit the project during the salary time to gain bonus attention.
He even gave his short mantra or principle for such situation "kaam ki fickar kar, fickar ka zickar kar, par kaam mat kar " (get worried and tensed about the work. Display your tention and worries to the world (esp bosses) . But don't work.)
And there were many other short stories like that.
Mann, i was about to shout " you corrupt asshole ", but one thing He just told us about the importance of being in boss's good books made me stop ( nd he is a fucking HOD, senior to teachers)
But hell he told some relatable truths. Make me sad about the job life.
Bloody Office politics :| -
Next weeks rant theme should be worst dev day.
Any how today I fucked up at a whole new level. First ran a script thinking I am deleting my local dev environment.
*An Eternity later*
Fuuuuuuuuuuuuuuckkkkkkk
That dreaded script ran on main dev server and fucked up the server used by a team of 15+ teammates. Dead.2 -
TL;DR: When picking vendors to outsource work to, vet them really well.
Backstory:
Got a large redesign project that involves rebuilding a website's main navigation (accessibility reasons).
Project is too big just for our dev team to handle with our workload so we got to bring a 3rd party vendor to help us. We do this often so no big deal.
But, this time the twist was Senior Management already had retained hours with a dev shop so they want us to use them for project. Okay...
It begins:
Have our scope / discovery meeting about the changes and our expected DevOps workflow.
Devs work Local and push changes to our Github, that kicks off the build and we test on Dev, then it goes to Staging for more testing & PM review. Once ready we can push to prod, or whenever needed. All is agreed, everyone was happy.
Emailed the vendors' project manager to ask for their devs Github accounts so we can add them to the project. Got no reply for 3 days.
4th day, I get back "Who sets up the Github accounts?"
fuck me. they've never used Github before but in our scope meeting 4 days ago you said Github was fine...??
Whatever, fuck it. I'll make the accounts and add them.
Added 4 devs to the repo and setup new branch. 40min later get an email that they can't setup dev environment now, the dev doesn't know how to setup our CMS locally, "not working for some reason."
So, they ask for permission to develop on our STAGING server.. "because it's already setup"... they want to actively dev on our staging where we get PM/Senior Management approvals?
We have dev, staging, production instances and you want to dev in staging, not dev?... nay nay good sir.
This is whom senior management wants us to use, already paid for via retainer no less. They are a major dev shop and they're useless...
😢😭
Cant wait for today's progress checkup meeting. 😐😐
/rant1 -
It's been two months since I've left my previous job, after 1.5 years. I never had the feeling my boss trusted his dev team, since he was checking up on us regularly, even though we had planned out a sprint and work for us was "clear". I say "clear", because every single feature on this project was pretty much half-baked, since they were just ideas our boss/PO (same person) on the spot and were labeled as "the next big thing" without every properly writing them out as user stories. Every demo came with a bunch of criticism, because features weren't implemented "as he imagined", because what do you know, the user stories weren't properly described anyway. Bringing that up as counter-argument also made him angry every time, so that didn't help much either. The launch of the platform was also postponed every time because of vague reasons, so that didn't make the project any more interesting either.
It took a while before I got sick of this of this pretty hopeless situation and toxic environment. Mind you, it was my first job since I graduated, so I was a bit naive thinking the working environment would improve and aforementioned company issues would be resolved over time. Eventually, I ran out of patience and motivation, so I finally bit the bullet and handed in my resignation letter.
From that moment, I at least had an end in sight, since I was still obliged to do my four-week notice period, which felt like an eternity. The borderline childish and sociopathic behaviour of my boss didn't make it any better (e.g. checking up on me even more, more mistrust, randomly accusing me of ruining the working atmosphere because I shared a meme with a colleague of mine and didn't involve him, going lunching with all of my colleagues but explicitly asking me to stay at work, ...). Being forced to work from home the last 2 weeks as part of the country's lockdown measures at least helped my sanity a bit, since I had the comfort of my home office and not the frequent "looking over your shoulders to check if you're still working".
By the last day of my notice period, I was bitter, exhausted, lost confidence in my skills and had completely lost my joy of being a developer. I had to physically meet with my boss one more time to hand in the company laptop. He thanked me for my service and said that we'd keep in touch. I hope I won't keep that promise (he made a lot of false promises before, too), because I'd rather never encounter him ever again. It felt like a huge relief to finally close the door of this bad experience behind me for good.
Now, 2 months later, I've got a new job and rediscovered my joy for coding, mostly thanks to the complete opposite of a toxic environment here, management which actually has respect and faith in me and a challenging but fun project. My mental state has made a complete turnaround compared to two months ago. I have absolutely no regrets of switching jobs. If only I had made that decision sooner.4 -
I already wrote a rant about this yesterday, but since I'm a sysadmin trying to convert to dev.. I dunno, maybe it's not a bad idea to muddy the waters a bit and talk about why not to be a sysadmin.
Personally I think it's that the perceived barrier to entry is just too high, while it isn't. You don't need a huge Ceph cluster and massive servers when you're just starting out. Why overbuild an appliance like that if it's gonna start out at maybe 5 requests a minute?
Let's take an example - DNS servers! So there's been this guy on the bind-users mailing list asking how to set up a DNS server on 2 public servers, along with a website. Nothing special I guess - you can read the thread here: https://0x0.st/ZY-d. Aside from the question being quite confusing, there was advice to read RFC's, get a book, read the BIND ARM, etc etc. And the person to deny this? No one less than Stephane Bortzmeyer, one of the people who works for nic.fr (so he maintains the .fr TLD) and wrote some of those RFC's as part of the DNSOP working group in the IETF. As for valid reasons to set up a DNS server? Could just be to learn how the DNS works, or hell even for fun. As far as professional DNS servers go.. this (https://0x0.st/ZYo9) is the nugget that powers the K root server, one of the 13 root servers that power the root zone of the internet, aka the zone apex. 2 RJ45 connections, and a console connection. The reason why this is possible is the massive recursor networks that ISP's, Google DNS, Cloudflare DNS, Quad9, etc etc provide. Point is, you don't need huge infrastructure to run a server!
Or maybe your business needs email. How many thousands of emails per second are you gonna need to build your mail server against? How many millions will you need to store? If your business has 10 employees and all of those manage about 10k emails total.. well that's easy, 100k emails total. Per second? Hundreds of emails per second per employee? Haha, of course not. Maybe you'll see an email a minute at most. That is not to say that all email services are like this - it is true that ISP's who offer email to their customers, and especially providers like Microsoft and Google do need massive mail servers that can handle thousands of emails per second. But you are not Microsoft or Google. So yeah, focus on the parts of email that are actually hard.. and there is plenty.
Among sysadmins you have this distinction between "professional" sysadmins and homelabbers. I don't mind the distinction itself but I think both augment each other. If you've started out by jumping into a heap of legacy at an established company, you will have plenty of resources, immediately high complexity, and probably a clusterfuck right away. But you will have massive amounts of resources. If you start out with a homelab, you will have not many resources, small workloads, and something completely new for you to build and learn with. And when running a server like that, you'll probably find that the resources required are quite small, to provide you with your new services. My DHCP servers take 12MB memory each. My DNS servers hover around the 40MB mark. The mail server.. to be fair that one consumes around 150. But if you'd hear the people saying that you need huge servers.. omg you need at least a TB of RAM on your server and 72 cores, massive disks and Ceph!1!
No you don't. All that does is scaring people away and creating a toxic environment for everyone. Stop it.1 -
That frustrating moment when you ask a Yes/No question and you get a full warstory and a conclusion to that story that doesn't answer the question and leaving you wondering why instead.
I just asked permission if I should implement this new feature on Dev/Test environment. Not gonna ask again next time. -
I recently have been delegated the responsibility of managing a 4 people team by planning the sprints, scheduling tasks, and in general "take charge" (as said by the boss).
What bothers me is there is this "developer" with a heavily toxic attitude, who feels he is above all laws and knows everything just because he joined some months ago all of us.
He is basically a human linter. When he code reviews, you can get away with any major mistake if your linting and indentation (and all that shit) is according to "his standards".
A new guy recently joined the team and was given an overwhelming task by the boss just to test whether he belongs here. (Again, wrong, in my opinion). He didn't know any of the technologies he needs to work on to complete that task but he still learnt them and got a working product. Albeit not according to our God's "standards".
Cut to the chase, the asshole dev is now mocking him in PR comments and demeaning him in every discussion. As a "team lead", what should I do? If I let it go, it'll make the environment toxic and I don't want him to get away with it. If I do take any action, I don't want to be seen as as pussy who can't take such minor insults. Please advise.
PS. The asshole developer once wrote a "friend request accept" API endpoint in such a way that when any single person accepts a request, that'll cause all pending requests (from any person to any person) get accepted. Fucked up the DB queries basically. This is just to give a perspective on what I'm dealing with here.4 -
I've now worked on both monolithic solutions and microapps/microservices. I gotta say I'm not sold on the new approach. There's so much overhead! You don't have to know your way around one solution -- no, now you need to know your way around 100 solutions. Debugging? Yeah, good luck with that. You don't have to provision one environment for dev, test, staging, and prod. No, now you need 100 environments per... environment. Now, you need a dedicated fulltime devops person. Now devs can check in breaking changes because their code compiles fine in that one tiny microapp. The extra costs go on and on and on. I get the theoretical benefits but holy crap you pay for it dearly. Going back to monolithic is so satisfying. You just address the bug or new feature head on without the ceremony and complexity. You know you're not crapping on other people's day (compilation-wise) because the entire solution compiles.
...and yeah, I'm getting old. So get off the lawn! ;)2 -
A loooong time ago...
I've started my first serious job as a developer. I was young yet enthusiastic as well as a kind of a greenhorn. First time working in a business, working with a team full of experienced full-lowered ultra-seniors which were waiting to teach me the everything about software engineering.
Kind of.
Beside one senior which was the team lead as well there were two other devs. One of them was very experienced and a pretty nice guy, I could ask him anytime and he would sit down with me a give me advice. I've learned a lot of him.
Fast forward three months (yes, three months).
I was not that full kind of greenhorn anymore and people started to give me serious tasks. I had some experience in doing deployments and stuff from my other job as a sysadmin before so I was soon known as the "deployment guy", setting up deployments for our projects the right way and monitoring as well as executing them. But as it should be in every good team we had to share our knowledge so one can be on vacation or something and another colleague was able to do the task as well.
So now we come to the other teammate. The one I was not talking about till now. And that for a reason.
He was very nice too and had a couple of years as a dev on his CV, but...yeah...like...
When I switched some production systems to Linux he had to learn something about Linux. Everytime he encountered an error message he turned around and asked me how to fix it. Even. For. The. Simplest. Error. He. Could. Google. Up.
I mean okay, when one's new to a system it's not that easy, but when you have an error message which prints out THE SOLUTION FOR THE ERROR and he asks me how to fix it...excuse me?
This happened over 30 times.
A. Week.
Later on I had to introduce him to the deployment workflow for a project, so he could eventually deploy the staging environment and the production environment by hisself.
I introduced him. Not for 10 minutes. I explained him the whole workflow and the very main techniques and tools used for like two hours. Every then and when I stopped and asked him if he had any questions. He had'nt! Wonderful!
Haha. Oh no.
So he had to do his first production deployment. I sat by his side to monitor everything. He did well. One or two questions but he did well.
The same when he did his second prod deploy. Everythings fine.
And then. It. Frikkin. Begins.
I was working on the project, did some changes to the code. Okay, deploy it to dev, time for testing.
Hm.
Error checking out git. Okay, awkward. Got to investigate...
On the dev server were some files changed. Strange. The repo was all up to date. But these changes seemed newer because they were fixing at least one bug I was working on.
This doubles the strangeness.
I want over to my colleague's desk.
I asked him about any recent changes to the codebase.
"Yeah, there was a bug you were working on right? But the ticket was open like two days so I thought I'll fix it"
What the Heck dude, this bug was not critical at all and I had other tasks which were more important. Okay, but what about the changed files?
"Oh yeah, I could not remember the exact deployment steps (hint from the author: I wrote them down into our internal Wiki, he wrote them done by hisself when introducing him and after all it's two frikkin commands), so I uploaded them via FTP"
"Uhm... that's not how we do it buddy. We have to follow the procedure to avoid..."
"The boss said it was fine so I uploaded the changes directly to the production servers. It's so much easier via FTP and not this deployment crap, sorry to say that"
You. Did. What?
I could not resist and asked the boss about this. But this had not Effect at all, was the long-time best-buddy-schmuddy-friend of the boss colleague's father.
So in the end I sat there reverting, committing and deploying.
Yep
It's soooo much harder this deployment crap.
Years later, a long time after I quit the job and moved to another company, I get to know that the colleague now is responsible for technical project management.
Hm.
Project Management.
Karma's a bitch, right? -
A newly joined developer (who was supposed to be very senior) comes and asks me how to write a test cos for some reason the person didn't know how to mock.
In Java,
(same for any other implementation which has an interface)
Writes Arraylist list =.....
Instead of List list = Arraylist...
Deployed code (another engineer from another country helped to deploy since this new senior dev didn't have access yet.
But the new senior dev didn't update relevant files in production code which brought down the site for nearly an hour. Mistake aside, the first reaction from this new senior dev is 'WHY DIDN'T THE DEV THAT WAS HELPING DIDN'T DO THE FILE UPDATE?'
This was followed by some other complaints such as our branching stragies are wrong. When in fact the new senior dev made a mistake by just making assumptions on our git branching strategies and we already advised on correct process.
Out of all these, guess this is the best part. The senior dev never tested code locally! Just wrote code, unit test and send to QA and somehow the test passed through. I learnt this when I realised this dev... has not even set up the local environment yet.
I keep saying new but this Senior dev been around like 3 months! This person is in another team within our larger team but shares same code base. I am puzzled how do you not set up your environment for 3 months. Don't you ask for help if you are stuck? I am pretty sure the env is still not setup.
Am I over reacting or is this one disgusting developer who doesn't even qualify for an intern let alone a senior dev? It's so revolting I can't even bring myself to offer help.8 -
so i am on notice period and suddenly my manager has realised that there are a lot of tasks that i have to pickup. well fuck this guy.
i was initially dumb enough to think that i leaving is a bad thing,and i should be doing everything to make the transition easier. the task was also interesting enough , as we were trying to add a new and complex feature and i was the main dev there.
so i started at full pace. i would work on my tasks for hours , even missing on my personal projects. but since last week he would keep adding new tickets in my jira boards every few days , followed by a quick huddle telling how this is a very small and high priority ticlet and i should look at that first.
and me being me, i would not only just finish those small tickets in time, but have a progress on my major feature, as well as answer doubts of other team mates and attend meetings.
--------
i always forget how hypnotising this work culture usually get. the above scenario that i explained? i have no problem with that in a general day. i love to work, solve problems and help others. but these are no normal days, this is my fuckin notice period.
And i am here coz of a reason. if they rely on me so much, why did they forced me to relocate when i just can't? why don't they gove me a lucrative salary + worthy relocation benefits ? fuck them. i even have to serve for a fucking 60 days coz they are not willing to reduce my notice period .
fake promises everytime.
"you don't worry about different office mentioned in your offer letter. we will always keep the environment remote" ~ lie
"even if we go wfo, our company will open an office in your city too, your city is the capital and we had an office there before" ~ lie
"your notice period will get reduced, dont worry about the 60 days" - another fucking lie
______
notice period experts, i need some devil advice to not get exploited by a lier corp. how to utilise my notice period and what should he the excuses to not attend any nloody meetings?9 -
Context: New to typescript. Writing a thing, doing it for work, good opportunity to stretch my dev legs. Using a propriety lib, alternatives not an option.
Rant begin:
SOOOO, who the fuck thought THIS was a good idea:
1. Lib has minified react in dev (because closed source) meaning no downstream errors AND the entire premise of the lib is that a widget is a react component, so I'm writing typescript react the entire time without downstream errors
2. SHIT docs. By that, I mean there's an API reference page that's so sparse there's literally a set of CRUCIAL interfaces that only say the word 'Interface' on them. That's it. that's what i get. It's an interface. NO FUCKING SHIT SHERLOCK, what the fuck is it though? What's its purpose? Is it an interface for a dog? A dog that has a 'shit' property? or a cat? or a cat eating dog shit? Nobody fucking knows - the docs sure as fuck don't care.
3. No syntax highlighting - editors, IDEs (i've tried a few) can't even find the lib inside this environment, so Code and everything else thinks I'm importing shit that doesn't even exist - so no error prediction, code completion based on syntax of the library, none of that.
4. There are some EXTREMELY basic samples - these samples exclusively use React classes - no function components, no hooks, nada - just classes and even perfect replicas of the sample code display erratic behavior like errors about missing props, so that's mostly FUCKING USELESS
5. And this... this is where the straw breaks the fucking camel's back... there's no... there's no hot reloading... Do you know what that (in conjunction with the previous 4 fuckups) means?
When I write anything or I fuck up (which of course I'm doing every time I write half a line because how the fuck?) I have to restart the client and server EVERY FUCKING TIME and manually test to see if the error (THAT ONLY GETS REPORTED IN THE LOCAL UI) is gone or different.
Then, once I see the error, it isn't an error: it's the minified React error-decoder link and guess what? It isn't really clickable a link OR copyable, meaning that every FUCKING time I get a new error, I have to MANUALLY TYPE A FUCKING 50 CHAR URL TO FIND OUT A GENERIC REACT ERROR MESSAGE WITHOUT A LINE NUMBER OR ANY FUCKING CONTEXT. I HAVE TO DO THIS CONSTANTLY TO SEE IF ANYTHING I'M DOING EVEN WORKS.
6. There's no github to complain to the maintainers or search for issues because it's NOT FUCKING OPEN SOURCE so there is literally nothing to be fucking done about it.
This is due in a week and a half, found out about it last Friday. How's your day going?
PS: good to be back after a long respite from dev ranting.1 -
!rant
For all of youse that ever wanted to try out Common Lisp and do not know where to start (but are interested in getting some knowledge of Common Lisp) I recommend two things:
As an introductory tutorial:
https://lisperati.com/casting.html/
And as your dev environment:
https://portacle.github.io/
Notice that the dev environment in question is Emacs, regardless of how you might feel about it as a text editor, i can recommend just going through the portacle help that gives you some basic starting points regarding editing. Learn about splitting buffers, evaluating the code you are typing in order for it to appear in the Common Lisp REPL (this one comes with an environment known as SLIME which is very popular in the Lisp world) as well as saving and editing your files.
Portacle is self contained inside of one single directory, so if you by any chance already have an Emacs environment then do not worry, Portacle will not touch any of that. I will admit that as far as I am concerned, Emacs will probably be the biggest hurdle for most people not used to it.
Can I use VS Code? Yes, yes you can, but I am not familiar with setting up a VSCode dev environment for Emacs, or any other environment hat comes close to the live environment that emacs provides for this?
Why the fuck should I try Common Lisp or any Lisp for that matter? You do not have to, I happen to like it a lot and have built applications at work with a different dialect of Lisp known as Clojure which runs in the JVM, do I recommend it? Yeah I do, I love functional programming, Clojure is pretty pure on that (not haskell level imo though, but I am not using Haskell for anything other than academic purposes) and with clojure you get the entire repertoire of Java libraries at your disposal. Moving to Clojure was cake coming from Common Lisp.
Why Common Lisp then if you used Clojure in prod? Mostly historical reasons, I want to just let people know that ANSI Common Lisp has a lot of good things going for it, I selected Clojure since I already knew what I needed from the JVM, and parallelism and concurrency are baked into Clojure, which was a priority. While I could have done the same thing in Common Lisp, I wanted to turn in a deliverable as quickly as possible rather than building the entire thing by myself which would have taken longer (had one week)
Am I getting something out of learning Common Lisp? Depends on you, I am not bringing about the whole "it opens your mind" deal with Lisp dialects as most other people do inside of the community, although I did experience new perspectives as to what programming and a programming language could do, and had fun doing it, maybe you will as well.
Does Lisp stands for Lots of Irritating Superfluous Parentheses or Los in stupid parentheses? Yes, also for Lost of Insidious Silly Parentheses and Lisp is Perfect, use paredit (comes with Portacle) also, Lisp stands for Lisp Is Perfect. None of that List Processing bs, any other definition will do.
Are there any other books? Yes, the famous online text Practical Common Lisp can be easily read online for free, I would recommend the Lisperati tutorial first to get a feel for it since PCL demands more tedious study. There is also Common Lisp a gentle introduction. If you want to go the Clojure route try Clojure for the brave and true.
What about Scheme and the Structure and Interpretation of Computer Programs? Too academic for my taste, and if in Common Lisp you have to do a lot of things on your own, Scheme is a whole other beast. Simple and beautiful really, but I go for practical in terms of Lisp, thus I prefer Common Lisp.
how did you start with Lisp?
I was stupid and thought I should start with it after a failed attempt at learning C++, then Java, and then Javascript when I started programming years ago. I was overwhelmed, but I continued. Then I moved to other things. But always kept Common Lisp close to heart. I am also heavy into A.I, Lisp has a history there and it is used in a lot of new and sort of unknown projects dealing with Knowledge Reasoning and representation. It is also Alien tech that contains many things that just seem super interesting to me such as treating code as data and data as code (back-quoting, macros etc)
I need some inspiration man......show me something? Sure, look for a game called Kandria in youtube, the creator, Shimera (Nicolas Hafner) is an absolute genius in the world of Lisp and a true inspiration. He coded the game in Common Lisp, he is also the person behind portacle. If that were not enough, he might very well also be Shirakumo, another prominent member of the Common Lisp Community.
Ok, you got me, what is the first thing in common lisp that I should try after I install the portacle environment? go to the repl and evaluate this:
(+ 0.1 0.2)
Watch in awe at what you get.
In the truest and original sense of the phrase (MIT based) "happy hacking!"9 -
Just fucking use the defacto standard. Shut up. Quit being immature. You're not the main character. No one in the world will use your new standard you pull out of your ass just because you thought you were better than other people. You weren't. You're an average dev by any means. If you feel like no one respects you, keep your ego problems out of your work. Just because your emotions are valid doesn't mean all of us have to live with them turned into code.
If I needed a web framework, I would've used React. I don't use React not because I wrote my own framework. I don't need a framework, like at all. Unless you think that ~300 LOC utils.js file + no build system whatsoever is a framework that is.
Sorry, just encountered non-upper-snake-cased environment variables and wanted to vent.4 -
How do you guys cope with being a junior dev and constantly receiving criticism about your work from your team leader?
I started working as a developer quite late: I did go to college in my early years but I was lazy at the time, so I didn't complete it. So I worked about ten years in a totally different industry, but I always wanted to go back to being a developer.
I've managed to do it when I was 34: I was a web developer in a small company and I was pretty much the only dev, except for an older dude who only knew Visual Basic 6 and kept programming things with it (in 2020ish!). In those years I always felt like a was way ahead of my colleague, and my efforts to apply best practices were not so welcome.
I eventually got tired of that situation, because I was feeling like wasting my time: I was already quite old and stuck in a jurassic environment
Then, I landed in a new company. Completely different environment: they use modern frameworks, TDD, static analysis, code reviews and stuff, and they do one to one meetings every two weeks. From the beginning, I felt like I was the dinosaur there: they were way ahead of me and I struggled to keep the pace. I immediately said that to my manager, but he was like "don't worry, it's just the start. I'm sure you will do great". Except I did not. I started collecting criticism about my work and I keep receiving it. When I tell my manager that constant criticism is not good for my self esteem, he replies "I can understand, but you have to manage it and I cannot avoid to correct you when you make mistakes". But it became really difficult for me to receive constant criticism, I very rarely have a compliment or a good word about what I do.
Is it just me? Should I finally grow up now that I am almost 40 and accept that working always sucks and you cannot be satisfied of what you do? Or am I simply a bad developer and should look for another job?
I am starting to get tired of this situation.12 -
When the CTO/CEO of your "startup" is always AFK and it takes weeks to get anything approved by them (or even secure a meeting with them) and they have almost-exclusive access to production and the admin account for all third party services.
Want to create a new messaging channel? Too bad! What about a new repository for that cool idea you had, or that new microservice you're expected to build. Expect to be blocked for at least a week.
When they also hold themselves solely responsible for security and operations, they've built their own proprietary framework that handles all the authentication, database models and microservice communications.
Speaking of which, there's more than six microservices per developer!
Oh there's a bug or limitation in the framework? Too bad. It's a black box that nobody else in the company can touch. Good luck with the two week lead time on getting anything changed there. Oh and there's no dedicated issue tracker. Have you heard of email?
When the systems and processes in place were designed for "consistency" and "scalability" in mind you can be certain that everything is consistently broken at scale. Each microservice offers:
1. Anemic & non-idempotent CRUD APIs (Can't believe it's not a Database Table™) because the consumer should do all the work.
2. Race Conditions, because transactions are "not portable" (but not to worry, all the code is written as if it were running single threaded on a single machine).
3. Fault Intolerance, just a single failure in a chain of layered microservice calls will leave the requested operation in a partially applied and corrupted state. Ger ready for manual intervention.
4. Completely Redundant Documentation, our web documentation is automatically generated and is always of the form //[FieldName] of the [ObjectName].
5. Happy Path Support, only the intended use cases and fields work, we added a bunch of others because YouAreGoingToNeedIt™ but it won't work when you do need it. The only record of this happy path is the code itself.
Consider this, you're been building a new microservice, you've carefully followed all the unwritten highly specific technical implementation standards enforced by the CTO/CEO (that your aware of). You've decided to write some unit tests, well um.. didn't you know? There's nothing scalable and consistent about running the system locally! That's not built-in to the framework. So just use curl to test your service whilst it is deployed or connected to the development environment. Then you can open a PR and once it has been approved it will be included in the next full deployment (at least a week later).
Most new 'services' feel like the are about one to five days of writing straightforward code followed by weeks to months of integration hell, testing and blocked dependencies.
When confronted/advised about these issues the response from the CTO/CEO
varies:
(A) "yes but it's an edge case, the cloud is highly available and reliable, our software doesn't crash frequently".
(B) "yes, that's why I'm thinking about adding [idempotency] to the framework to address that when I'm not so busy" two weeks go by...
(C) "yes, but we are still doing better than all of our competitors".
(D) "oh, but you can just [highly specific sequence of undocumented steps, that probably won't work when you try it].
(E) "yes, let's setup a meeting to go through this in more detail" *doesn't show up to the meeting*.
(F) "oh, but our customers are really happy with our level of [Documentation]".
Sometimes it can feel like a bit of a cult, as all of the project managers (and some of the developers) see the CTO/CEO as a sort of 'programming god' because they are never blocked on anything they work on, they're able to bypass all the limitations and obstacles they've placed in front of the 'ordinary' developers.
There's been several instances where the CTO/CEO will suddenly make widespread changes to the codebase (to enforce some 'standard') without having to go through the same review process as everybody else, these changes will usually break something like the automatic build process or something in the dev environment and its up to the developers to pick up the pieces. I think developers find it intimidating to identify issues in the CTO/CEO's code because it's implicitly defined due to their status as the "gold standard".
It's certainly frustrating but I hope this story serves as a bit of a foil to those who wish they had a more technical CTO/CEO in their organisation. Does anybody else have a similar experience or is this situation an absolute one of a kind?2 -
Im gonna get a new laptop soon and on my old laptop I want to install linux (cant do that on my main laptop because Im a windows dev at the moment).
I am not new to linux and have used 3 major ubuntu versions and it was all trouble, autoremoving files after update etc.
So I am planning to go Manjaro but which desktop environment shall I use? I've heard great things about i3 and Cinnamon. Gnome is not something I liked in Ubuntu.
Which desktop environment do you use, why and how did you make the choice?6 -
just finished new series 4 of doctor who. how can it possibly get better from here?
sorry !dev but this is my only social environment and at least somewhat of a rant4 -
As my first dev job, I took over role of solo programmer maintaining all kinds of custom-made software used by local ISP. It was about 10 years ago.
My first question was where can I find test environment and repo. Apparently there was none and I should learn and develop on production.
My sin was to quickly give up on setting up both test and repo.
My second sin was to continue using the same copy&paste PHTML with register_globals enabled, building over it without attempting to refactor it with templates. I did not use globals in any new code at least.
And I suppose my third sin was that I was playing games when I was done with my tasks. I could have used that time to refactor a bit.
But I think in the end I was absolved from them since I was the only one suffering from this. I stayed with company until it got sold and helped migrate data over (along with myself). -
Lead dev runs the program I gave him to set up a bunch of processes that run for one database.
It has a GUI that seems native to his windows environment......but it sort of is not.
The program runs, asks for the .csv file that is to be parsed into the database.
Lead dev: Ok, what is this though?
Me (his boss) "Don't worry about it"
Him: "Holy shit what the fuck is this??? TELL ME!!!"
Me: DON'T WORRY ABOUT IT
Him: "WTF DID YOU MAKE THIS IN???!
ME: DON'T WORRY ABOUT IT
CMS Admin (another one of my employees) "Would you TWO SHUT THE FUCK UP!!!?"
New Guy (mainly a frontend dev): ........
Meanwhile, in production, no one knows if your gui app is built in Lazarus and Free Pascal, as long as it works.
I really need to stop doing this to the lead dev, dude already keeps trying to choke me for writing things in perl.
On another note, Object Pascal is pretty cool. Might write a book on it for those that want to do CLI based applications on it, I have no clue why every book on the subject costs in euros, but there should be more shit written for beginners, language is awesome and one can get lots of mileage from Lazarus and FPC11 -
Work log..
Day 1
1) Starts a new project.
2) Can't connect windows machine to the new router.
3) Wastes one day connecting.
Day 2
1) Switched to Linux (dual boot).
2) Parrot OS sound issue, don't know why.
3) Fixed the issue, upgraded the system. No brain fucked.
4) Sets up Dev Environment, Starts the project.
5) All this in 4 hrs.
#DumbWndows
Now, I'm staying here. #LoveLinux2 -
Starting a new role as a lead dev for a company that currently outsources their work to an agency in another country.
Finding out that some of the environment setup scripts don’t work as php5.3 is not in the Debian repository anymore ☠️ -
Dumb mistake from when I was still working:
My work laptop’s SSD went haywire, and I/O would spike every 10 minutes or so for ~50 ms. The hardware guy said he could replace the SSD right away, or I could endure it for a few weeks and get a new laptop instead. Obviously, I agreed to wait. The stutter noticeably affected screen rendering, but I didn’t notice any other issues. Little did I know that every time it happened, all input was ignored (as in: not queued). Normally it wouldn’t matter, because hitting a random ~50 ms window is hard. How-the-f×ck-ever…
A few days later — without getting into “why” — I was forced to apply a patch in production. So I opened an SSH session to prod in one terminal, spun up a dev environment in another, copied the database schema from prod to dev, and made sure to test everything. No issues, so I jumped to prod, applied the patch, restarted services, jumped back to dev, and cleaned up the now-unnecessary database. Only to discover that my “jumped back to dev” keystroke didn’t register.16 -
My work product: Or why I learned to get twitchy around Java...
I maintain a Java based test system, that tests a raster image processor. The client is a Java swing project that contains CORBA bindings to the internal API of the raster image processor. It also has custom written UI elements and duplicated functionality that became available in later versions of Java, but because some of the third party tools we use don't work with later versions of Java for some reason, it's not possible to upgrade Java to gain things as simple as recursive directory deletion, yes the version of Java we have to use does not support something as simple as that and custom code had to be written to support it.
Because of the requirement to build the API bindings along with the client the whole application must be built with the raster image processor build chain, which is a heavily customised jam build system. So an ant task calls out to execute a jam task and jam does about 90% of the heavy lifting.
In addition to the Java code there's code for interpreting PostScript files, as these can be used to alter the behaviour of the raster image processor during testing.
As if that weren't enough, there's a beanshell interface to allow users to script the test system, but none of the users know Java well enough to feel confident writing interpreted Java scripts (and that's too close to JavaScript for my comfort). I once tried swapping this out for the Rhino JavaScript interpreter and got all the verbal support in the world but no developer time to design an API that'd work for all the departments.
The server isn't much better though. It's a tomcat based application that was written by someone who had never built a tomcat application before, or any web application for that matter and uses raw SQL strings instead of an orm, it doesn't use MVC in any way, and insane amount of functionality is dumped into the jsp files.
It too interacts with a raster image processor to create difference masks of the output, running PostScript as needed. It spawns off multiple threads and can spend days processing hundreds of gigabytes of image output (depending on the size of the tests).
We're stuck on Tomcat seven because we can't upgrade beyond Java 6, which brings a whole manner of security issues, but that eager little Java updated will break the tool chain if it gets its way.
Between these two components we have the Java RMI server (sometimes) working to help generate image data on the client side before all images are pulled across a UNC network path onto the server that processes test jobs (in PDF format), by reading into the xref table of said PDF, finding the embedded image data (for our server consumed test files are just flate encoded TIFF files wrapped around just enough PDF to make them valid) and uses a tool to create a difference mask of two images.
This tool is very error prone, it can't difference images of different sizes, colour spaces, orientations or pixel depths, but it's the best we have.
The tool is installed in both the client and server if the client can generate images it'll query from the server which ones it needs to and if it can't the server will use the tool itself.
Our shells have custom profiles for linking to a whole manner of third party tools and libraries, including a link to visual studio 2005 (more indirectly related build dependencies), the whole profile has to ensure that absolutely no operating system pollution gets into the shell, most of our apps are installed in our home directories and we have to ensure our paths are correct for every single application we add.
And... Fucking and!
Most of the tools are stored as source bundles in a version control system... Not got or mercurial, not perforce or svn, not even CVS... They use a custom built version control system that is built on top of RCS, it keeps a central database of locked files (using soft and hard locks along with write protecting the files in the file system) to ensure users can't get merge conflicts by preventing other users from writing to the files at all.
Branching is heavy weight and can take the best part of a day to create a new branch and populate the history.
Gathering the tools alone to build the Dev environment to build my project takes the best part of a week.
What should be a joy come hardware refresh year becomes a curse ("Well fuck, now I loose a week spending it setting up the Dev environment on ANOTHER machine").
Needless to say, I enjoy NOT working with Java. A lot of this isn't Javas fault, but there's a lot of things that Java (specifically the Java 6 version we're stuck on) does not make easy.
This is why I prefer to build my web apps in python or node, hell, I'd even take Lua... Just... Compiling web pages into executable Java classes, why? I mean I understand the implementation of how this happens, but why did my predecessor have to choose this? Why?2 -
i have a very casual and boring job. it's a b2b company and you can get an idea of how less work we get (or how fast i am) that it's day 1 of the sprint and i have almost finished all my tickets. my manager always praises me as someone fast whereas i see myself as pretty slow and this company even slower.
i feel like quitting, but the relax environment and stability of the company on paper makes me wonder of that would be a correct decision.
It's a deep tech company (not just meat e commerce or car rentals, a proper b2b analytics giant startup with good profitability) , our sdks are used by major startups and yet i find it boring.
I am an android dev who would love to stay at top of the game. my previous company used latest jetpack libraries, kotlin, modular architectures and stuff. everyday was a hectic chaos of life where there were deadlines, new requests coming in every few days and i was becoming the awesome fast android dev that i am now.
in this company there is no challenge for me.But the amount of free time has helped me grow beyond a single domain. i am currently hustling in 3 areas : my body( i started working out regularly, got my tummy under control), my technical skillset( started taking web dev classes) and my physical skillset (started taking driving and swimming lessons) . the amount of self growth time increases since company has a good leave and PTO policy
it all feels pretty good but the constant feeling of being left out from the android domain makes me think if i should give interviews. am i being stupid or what? my friends are all growing up with better salaries and packages. i am way better than some of them and equally capable as a few of them, so i sometimes feel being behind in finances too :/7 -
Need some advice here.
So hello everyone! I recently moved abroad for work, for the sake of the experience and the excitement of learning how developers in Latin America tackle specific problems. To my surprise, the dev team is actually composed solely of Europeans and Americans.
I work for a relatively new startup with an ambitious goal. I love the drive everyone has, but my major gripe is with my team lead. He's adverse to any change, and any and all proposals made to improve quality of throughput are shot down in flames. Our stack is a horrendous mess patched together with band-aids, nothing is documented, there are NO unit tests for our backend and the same goes for our frontend. The team has been working on a database/application migration for about a month now, which I find ridiculous because the entire situation could have been avoided by following very rudimentary DevOps practices (which I'm shunned for mentioning). I should also add that for whatever reason containerization and microservices are also taboo, which I find hillarious because of our currently convoluted setup with elastic beanstalk and the the constant complaints between our development environment and production environments differing too much.
I've been tasked with managing a Wordpress site for the past 3 weeks, hardly what I would consider exciting. I've written 6 pages in the past two weeks so our marketing team can move off of squarespace to save some money and allow us more control. Due to the shit show that is our "custom theme" I had to write these pages in a manner that completely disregard existing style rules by disabling them entirely on these pages. Now, ironically they would like to change the blog's base theme but this would invertedly cause other pages created before I arrived to simply not work, which means I would have to rewrite them.
Before I took the role of writing an entire theme from scratch and updating these existing pages to work adequately, I proposed moving to a headless wordpress setup. In which case we could share assets in a much more streamline manner between our application and wordpress site and unify our styles. I was shot down almost immediately. Due to a grave misunderstanding of how wordpress works, no one else on the team seems to understand just how easy it is to fetch data from wordpress's api.
In any event, I also had a tech meeting today with developers from partner companies and realized no one knew what the fuck they were talking about. The greater majority of these self proclaimed senior developers are actually considered junior developers in the United States. I actually recoiled at the thought that I may have made a great mistake leaving the United States to look a great tech gig.
I mean no disrespect to Latin America, or any European countries, I've met some really incredible developers from Russia, the Ukraine, Italy, etc. in the past and I'm certainly not trying to make any blanket statements. I just want to know what everyone thinks, if I should maybe move back to the states and header over to the bay/NY. I'm from the greater Boston area, where some really great stuff is going on but I guess I also wanted a change of scenery.2 -
February will be the first full year at this company as full time employee.
I've updated so many legacy projects, optimized a lot of workflows as well as built new tools to improve efficiency and remove unnecessarily duplicate projects (sometimes literally only 3 variables were different between multiple projects)
My one co-worker taught himself enough code to do the job but doesn't think like a programmer though he is asking me for help and advice to improve what he does since ive proven i know a little. my other direct co-worker I'm practically teaching a Programming 100 course to them
My direct manager at one point said he was so happy he took a chance on me even though I didn't interview well
I like my job, I find it so much better than my last job which was horribly toxic, and more fun than my first 'real' job as a night shift help desk for basically a warehouse environment.
But I feel under paid sometimes for how much i do and all ive improved in my first year, I have my first yearly review coming up. I'm hoping to get a decent raise for all ive done and I want to somehow go over everything with the HR person to justify it. But I have no idea how to talk about my dev work to them in a way a non technical person could understand. I'm also not sure how the review process will work. Like will my manager be there. Or is it just me and HR, is there a paper I'll be sent to fill before hand,1 -
The main developer at the company just got a new gig and now I'm the sole dev. Everything in the production environment is legacy and in C#. Guess it's time to take a crash course...
-
I've been programming for 15 years now or more if I count my years I programmed as a hobby. I'm mostly self learned. I'm working in an environment of a few developers and at least the same amount of other people (managers, sales, etc). We are creating Magento stores for middle sized businesses. The dev team is pretty good, I think.
But I'm struggling with management a lot. They are deciding on issues without asking us or even if I was asked about something and the answer was not what they expect, they ask the next developer below me. They do this all the way to Junior. A small example would be "lets create a testing site outside of deployment process on the server". Now if I do this, that site will never be updated and pose a security risk on the server for eternity because they would forget about it in a week. Adding it to our deployment process would take the same time and the testing site would benefit from security patches, quick deployment without logging in to the server, etc. Then the manager just disappears after hearing this from me. On slack, I get a question in 30 minutes from a remote developer about how to create an SSH user for a new site outside of deployment. I tell him the same. Then the junior gets called upstairs and ending up doing the job: no deployment, just plain SSH (SFTP) and manually creating the database. I end up doing it but He is "learning" how to do it.
An other example would be a day I was asked what is my opinion about Wordpress. We don't have any experience with Wordpress, I worked with Drupal before and when I look at a Wordpress codebase, I'm getting brain damage. They said Ok. The next day, comes the announcement that the boss decided to use Wordpress for our new agency website. For his own health and safety, I took the day off. At the end, the manager ended up hiring an indian developer who did a moderately fair job. No HiDPI sprites, no fancy SASS, just plain old CSS and a simple template. Lightyears worse than the site it was about to replace. But it did replace the old site, so now I have to look at it and identify myself part of the team. Best thing? We are now offering Wordpress development.
An other example is "lets do a quick order grid". This meant to be a table where the customer can enter SKU and quantity and they can theoretically order faster if they know the SKU already. It's a B2B solution. No one uses it. We have it for 2 sites now and in analytics, we have 5 page hits within 3 years on a site that's receiving 1000 users daily... Mostly our testing and the client looked at it. And no orders. I mean none, 0. I presented a well formatted study with screenshots from Analytics when I saw a proposal to a client to do this again. Guess what happened? Someone else from the team got the job to implement it. Happy client? No. They are questioning why no one is using it.
What would you do as a senior developer?
- Just serve notice and quit
- Try to talk to the boss (I don't see how it would work)
- Just don't give a shit1 -
SharePoint have something called 'event receiver'. An event is triggered when the user inserts a new record in a list. That event must update a column in the same item. After a few minutes it starts to throw conflict errors while trying to update said column. Doesn't happen with every user. Also I wasn't able to reproduce this behavior in the dev environment.
So now I just recursively call the update method, passing an iterator parameter, repeating the same method until it successfully update the record. Or after 6 failures email someone to see what's going on. Just did it today and published at 7PM. Tomorrow gonna be a long day and I know I deserve it.1 -
Yesterday, I had to set up a demo environment for a project, we are working on.
Everything was okay, frontend loaded, connection to backend is working, database is connected.
10 minutes before I wanted to leave for my well deserved weekend, PO came over: "I can't play any video, I uploaded"
Okay, couldn't be a big issue, it worked when I added this functionality 3 weeks ago, just before my holidays.
A bit under pressure, my girlfriend Was already waiting downstairs, I inspected the database and realized that a table Was not properly filled.
Checked the backend and everything seems fine, so checked the requests from the frontend and realized that the request was almost empty.
So some code, building the request body had to be wrong.
Already 10 minutes late, with a lightly annoyed girlfriend waiting for me, I found the issue but couldn't recognize that I wrote these few lines. A quick check of the git history showed, that my colleage changed my code during my holidays, so I just reverted everything.
After commit and deployment, I called my colleage and told him that I just reverted his changes.
"But now my feature is not working anymore, I had to change it like this!" he answered. I just responded that we will talk about that on monday and look at it together. While I hurried down the stairs, I was thinking why the hell somebody just changes stuff without checking if it affects other functionalities?
This should be basic knowledge for every dev, that if you change existing, working code to make it work with your feature, you have to ensure to not brake anything.
If you can't do that, then create a new function to handle your shit.
In the end, my girlfriend had to wait 30 minutes, because of 4 lines of codes, someone just changed without thinking what else could happen...3 -
Hey guys, first time writing here.
Around 8 months ago I joined a local company, developing enterprise web apps. First time for me working in a "real" programming job: I've been making a living from little freelance projects, personal apps and private programming lessons for the past 10 years, while on the side I chased the indie game dev dream, with little success. Then, one day, realized I needed to confront myself with the reality of 'standard' business, where the majority of people work, or risk growing too old to find a stable job.
I was kinda excited at first, looking forward to learning from experienced professionals in a long-standing company that has been around for decades. In the past years I coded almost 100% solo, so I really wanted to learn some solid team practices, refine my automated testing skills, and so on. Also, good pay, flexible hours and team is cool.
Then... I actually went there.
At first, I thought it was me. I thought I couldn't understand the code because I was used reading only mine.
I thought that it was me, not knowing well enough the quirks of web development to understand how things worked.
I though I was too lazy - it was shocking to see how hard those guys worked: I saw one guy once who was basically coding with one hand, answering a mail with another, all while doing some technical assistance on the phone.
Then I started to realize.
All projects are a disorganized mess, not only the legacy ones - actually the "green" products are quite worse.
Dependency injection hell: it seems like half of the code has been written by a DI fanatic and the other half by an assembly nostalgic who doesn't really like this new hippy thing called "functions".
Architecture is so messed up there are methods several THOUSANDS of lines long, and for the love of god most people on the team don't really even know WHAT those methods are for, but they're so intertwined with the rest of the codebase no one ever dares to touch them.
No automated test whatsoever, and because of the aforementioned DI hell, it's freaking hard to configure a testing environment (I've been trying for two days during my days off, with almost no success).
Of course documentation is completely absent, specifications are spread around hundreds of mails and opaquely named files thrown around personal shared folders, remote archives, etc.
So I rolled my sleeves up and started crunching as the rest of the team. I tried to follow the boy-scout rule, when the time and scope allowed. But god, it's hard. I'm tired as fuck, I miss working on my projects, or at least something that's not a complete madness. And it's unbearable to manually validate everything (hundreds of edge cases) by hand.
And the rest of the team acts like it's all normal. They look so at ease in this mess. It's like seeing someone quietly sitting inside a house on fire doing their stuff like nothing special is going on.
Please tell me it's not this way everywhere. I want out of this. I also feel like I'm "spoiled", and I should just do like the others and accept the depressing reality of working with all of this. But inside me I don't want to. I developed a taste for clean, easy maintainable code and I don't want to give it up.3 -
I have being working on a project with server side using PHP. My dev environment is XAMPP on Debian. PHP is 7.3.10. So.... no MCrypt. Documents said that a new kid called Sodium is in town but php said he doesn’t know this guy...
I have no encryption library...14 -
ops: your dev environment shuts itself down on boot up, something is broken in the boot process and it'd be more trouble to figure out why so you're better off making a new one again
fuck me
and fuck you too AWS EC2 whatever -
Funny how things comes around...
So... project start-up... everybody learning and designing the future new system. Then we get to a point that we saw that we'll probably need someone outside or dev team to setup all the environments CI/CD pipelines... Our PM said "what about we get a Devops guys to take care of that?" Most of our team members agreed but our Techlead said "Devops is not a job, it's a culture.". Ok, nice... I understand that point, but for a system of the size of the one that we're building...It would probably be a good idea to have someone to take care of that for us. BUT, he (the techlead) said that he will be taking care of all that himself (along with coding part of the backend).
RESULT: We're stuck in the point that we're unable to test our system in the correct environment, we've no pipeline for automated deploy of our sprints...
Guys, I think the Devops is no more then somebody that is going to take care of some tasks in the project, like the backend, the frontend, the tests, the management...2 -
Not the best way a co worker has quit and not dev related. From a job I had for only a month the summer before I got my first position with the company I'm currently with. It was factory work, pretty crappy, no air conditioning, this guy started just after me hardly ever did his job and was just generally annoying as hell. One day I'm brought into HR and asked if I fucking shower. :| I do and did every day. Deoderent and all. I explained it's a hot work environment. They said I should just shower more. I've never heard such a dumb complaint filed against anyone. Of course I wasn't going to smell like daisies, it was hot as fuck in there. Anyway a week later got offered a new job, I didn't give any notice just walked to HR at the end of the day the day before I started my new job, said I'm out. They asked if they could get 2 weeks notice, with out hesitating I stated no, I start my new job tomorrow, here's my badge, bye. And walked out. :| This wasn't the only thing that made me quit but it was kind of a tipping point. Like ok don't like sweat smell? Then don't be on top of me or find a job with air conditioning.2
-
I guess these days I work with Golang, gRPC, and Kubernetes. I guess that's a dev stack. Or turning into one at the very least. The only thing that annoys me about this stack, is how different deployments for kubernetes are different for CSPs. The fact that setting up a kubernetes/Golang dev environment is take a lot of time and effort. And gRPC can be a pain in the ass to work with as well. Since it's fairly new in large scale enterprise use, finding best practices can be pretty hard, and everything is "feet in the fire" and "trial by error" when dealing with gRPC.
And Golang channels can get very hairy and complicated really really fast. As well as the context package in Golang. And Golang drama with package managers. I wish they would just settle on GoDeps or vgo and call it a day.
And for the love of God, ADD FUCKING GENERICS! Go code can be needlessly long and wordy. The alternative "struct function members" can be pretty clunky at times. -
Me: Assigned to do some NoSQL injections test cases in December on Jira by product owner.
After asking him about it, he said it can be vague and it’s only for developers to get an idea. I also have this restriction where I can’t really keep actually data or databases in our test sample application, so I could only mock mongodb. Product owner says just mongo is fine.
I do it. Now it’s January, product owner away for a month we so director is managing it. She then schedules me to talk to database team. I show them the very simple test cases which essentially just inject payloads I found online into different parameters specified in test case. They say if that’s it. I say yes. They say what’s the point of this. I said that it’s probably to test your database clients and ensure they’re rejecting bad Malicious input? They then keep asking but I’m just the dev and tell them the product owner is away. Then the guy calls my test case essentially useless and the others agree. Then they tell me to do it for other databases which I can’t mock like couchbase even tho my PO said it’s fine for mongo only.
Am I just being silly here? I am pretty new to working in a dev environment so please feel free to be blunt.4 -
firstly, does anyone know of an online telegram or whatsapp group where i can ask silly stuff regarding web dev and get immediate answers, just like it is here?
secondly i am trying to learn js and there are just too many related terms that are messing with my brain:
"some features are supported ines5/es6/es15/es16/es17 , some are supported in chrome's v8/chakra/spidermonkey/android browser , some features are only supported in "serverside" and blocked in all browsers thanks to browser's vm environment; babel can't read this code, some features are provided only by node js..."
WHAT THE MESS IS THIS?
All i am trying to do is to write code that would make a website visible to everyone. if by specific browser , i want to target, chrome and its subsidaries and android chrome/other android browsers .
for other browsers am willing to make external converters later but don't want to change my code by 1 bit. And from what i know, each browser (at least the browsers am thinking of supporting) has the complete JS compilers already built in
can i or can i not built a complete functional website with those things?
and finally my main question : how to make custom exceptions in vanilla js? i saw this answer on stack overflow:
===================
function InvalidArgumentException(message) {
this.message = message;
// Use V8's native method if available, otherwise fallback
if ("captureStackTrace" in Error)
Error.captureStackTrace(this, InvalidArgumentException);
else
this.stack = (new Error()).stack;
}
InvalidArgumentException.prototype = Object.create(Error.prototype);
InvalidArgumentException.prototype.name = "InvalidArgumentException";
InvalidArgumentException.prototype.constructor = InvalidArgumentException;
Usage:
throw new InvalidArgumentException();
var err = new InvalidArgumentException("Not yet...");
=====================================
where is the error code? what would be the exception details? what is the line number/timestamp of error?why is that function making an error, i thought error/exception is a class in JS?4 -
Need advice about switching to contracting.
TL;DR;
So I had 2 years of exp as an android dev, then I had a 1.5 year gap from doing android and now for the past 6 months Ive been doing android again fulltime. Im thinking of switching to contracting due to my debts and boring project and life crushing slow corporate processes in my current fulltime job, so I need tips and advices as to where should I start looking for new contracting gigs and in general what should I pay attention to. If it helps, I am based in EU, but am open to any EU/US gigs.
Now the full story:
Initially when I joined my current fulltime job after a break I had zero confidence, lowered my and employers expectations, joined as a junior but quickly picked up the latest standards and crushed it. Im doing better than half devs in my scrum team right now and would consider myself to be a mid level right now.
Asked for a 50% bump, manager kinda okayed it but the HQ overseas is taking a very long time to give me the actual bump. I have been waiting for 10 weeks already (lots of people in the decision chain were on and off vacations due to summer, also I guess manager sent this request to HQ too late, go figure). Anyways its becoming unnaceptable and I feel like its time for a change.
Now since I have mortgage and bills to pay, even with the bump that I requested that would leave me with like maximum 700-800 bucks a month after all expenses. I have debts of around 20k and paying them back at this rate would take 3 years at least and sounds like a not viable plan at all.
Also it does not help that the project Im working on is full of legacy and Im not learning anything new here. Corporate life seems to be very slow, lots of red tape kills creativity and so on. I remember in startups I was cooking features left and right each sprint, in here deploying a simple popup feature sometimes takes weeks due to incompetence in the chain. I miss the times where I worked in startups, did my job learned nre skills and after 6 months could jump on another exciting gig. Im not growing here anymore.
So because my ADD brain seems to be suited much better for working in startups, and also I need to make more money quick and I dont see a future in current company, I am thinking of going back to contracting. All I need right now is to build a few side apps, get them reviewed by seniors and fill my knowledge gaps. Then I plan of starting interviewing as a mid level or even a senior for that matter, since I worked with actual seniors and to be honest I dont think getting up to their level would be rocket science.
Only difference between mid and senior devs that I see atleast in my current company is that seniors are taking on responsibility more often, and they also take care of our tools, such as CD/CI, pipeline scripts, linters and etc. Usually seniors are the ones who do the research/investigations and then come up with actual tasks/stories for mids/juniors. Also seniors introduce new dependencies and update our stack, solve some performance issues and address bottlenecks and technical debt. I dont think its rocket science, also Ive been the sole dev responsible for apps in the past and always did decent work. Turns out all I needed was to test myself in an environment full of other devs, thats it. My only bottleneck was the imposter syndrome because I was a self taught dev who worked most of my career alone.
Anyways I posted here asking for some tips and advices on how to begin my search for new contract opportunities. I am living in EU, can you give me some decent sites where I could just start applying? Also I would appreciate any other tips opinions and feedback. Thanks!3 -
Windows is a shameful dev enviro but when you stuck in Africa, you gotto work with what you have. I dabble in node, R and hadoop and setting up environment and building modules on windows is a walk on hot ash in a desert.
To go around setting up of different dev enviros, i use a windows pre installed hack specially meant for that purpose. A new user account for each dev job. Kips my machine clean and sane while avoiding the blue screen.
After all, who still shares laptops today enough to use different user accounts😂😂1 -
In my college project I am stuck with dumbos. I thought because of of experience in industry I would make them learn something. They don't anything other data entry, a lot of which can be automated. And I work the code which involves building APIs and 2 different Android apps. They are 3 and I am one. Till today they never bother to install the dev environment. Today I told them to get their laptops so they could connect to my laptop server and work with it. But no one bothered to get their laptops. All of them were using my one laptop. Can you imagine 3 people sitting on one machine instead of 3. And I have to sit there doing nothing😑. I went out to chill for sometime knowing that I could do nothing useful without my laptop. And when I return I find that instead of adding new entries, these people kept on editing old entries.🤦🏻 I mean how dumb could anyone be. Power of 3 brains. I can handle 0 work done, but this is negative work. I could done it myself by writing some automation script. And these people tell people behind my back to my friends that they do all the work😡. I have reached the limits.2
-
!dev
So, few people who know what shitstorm I've been through, considering that I've cut off all social media except Reddit and devRant.
I am one of those hotheads who will rebel against anything which is even slightly wrong or unacceptable so after my twitter incident, I've been thinking to change my behavior and attitude, which has caused me and my best friend problems and I let him down and embarrassed and I think he also gave up on me but more to that later (or maybe I've covered it up in my last rant). The point is I want to improve myself, grow myself and for the sake of that I've quit free-lancing, and took a mildly great opportunity in a meteor js based company, I like their office, I join within 2 months (2 months till my support period ends), also I've become quite a twitter addict so I had to shut down my old account.
But I have an idea to learn about the corporate environment and raise voice against them, which in my eyes is an action that should be needed.
Somewhere down the line, I wanted to achieve my dream i.e. to get my doctorate degree, I was so obsessed about it. But frankly speaking, I've given up on that too.
So. yeah, cheers to a new life
var life = new Life(); -
When talking to the integration guys, installing a new testing environment takes about 3 weeks or more.
When a new dev arrive in the team, we set his dev environment in half a day.
I don't understand such a difference.5 -
So I'm the only tester at my company, and I've had to adapt a lot of my skills to fit in with our in house expectations. So everything was fine when I focused on trying one component (manual and automation).
Slowly over time I've had more components to test with exact same resource of me.
Eventually my automatic breaks as I could no longer maintain that and all the other manual tests and all the other jobs I do ( light level internal it support, jira ticket rangerling, rollbar (error messages) basic investigation).
My boss keeps saying why is x,y,z not tested / missed while I can point to time periods where was focused on v instead so didn't get to others.
I keep wanting to just hit them with a keyboard until they realise 10± devs to one qa in our environment just isn't going to work.
I keep getting promised some dev time to help with qa so I can play catch up but never seems to arrive.
Don't get me wrong I'm not the best I used to be at testing(before joining I was proud of my abilities, maybe all stick and not enough carrot wears you down)
We keep taking on new work flows that make no sense (create a bug ticket, then a task ticket if bug take more than hour to do, then I'm stuck chasing developers to update their task ticket so I cam update the bug ticket (if its a bug then log sodding log time against it).
I've gotten to point now where I'm stopping my suggestions, explaining why something didn't get dome and will see if they can answer their own stupid questions
At what point do you stop ignoring the voices in your head (metaphorically).
Do other people go through this cycle where feel like pushing a boulder up the hill, for them to either push your boulder down the hill, replace it with a bigger boulder, move to a bigger hill, get you to move more rocks at once or all the above.
I know QA has its quite and busy phases but for me it seems to be constantly busy with no respite4 -
No matter how much i think i am sorted out regarding my career, one small shit happens and i am again confused.
I previously interned for 2 months in a company as an Android dev(it was a 4 month internship, but i got it reduced to 2 because of my college exams)
It was a nice ad based company. Their main focus was on their web products and had no Android product or team( they just had a thought for expanding in Android) . So clearly i was their first recruit/intern
I worked their, all alone, at my pace, without any external help. It was a picnic for me as nobody bossed me around or gave me deadlines as nobody knew my work, and i got paid. They would just wait me to report my daily work, i would write my stuff honestly, but i know they understood jack shit
I was told that once the alpha product is liked by the investors we will recruit a team, but i made the product in 1st month and never got info about any recruitment going on. I was just told to fix the bugs and work more on it.
When my internship ended , i was already bored out getting stuck at a place without any senior help . Plus they damaged relations with me on other reasons( halted my stipend for last month for 60 days, that's another rant, but it was mostly the stupidity of hr dept)
So now i started applying for other companies. My original company called me afterwards but i made an excuse to be out of state and talk after new year(it was honest)
Other companies are now showing interest with a lower pay , but now am feeling like a stupid person going from a decent pay and comfortable environment to a lesser pay but aggressive environment .
Should i contact my original company again? I feel guilty leaving them this way, but to be fair i was wasting my time there (quite literally, i was making my assignments and writing blogs there when stuck)3 -
I've got a dev server where I run some test sites in WP using EasyEngine, because I want to get accustomed to WP in Docker.
It asked me to update, and I was like "sure". Now whenever I want to setup a website I get "easyengine couldn't create username"
I figured ok I'll use WordOps, which requires migrating from EasyEngine to it. I was like sure, and next thing I know the "migrated" websites that it was supposed to properly migrate automatically are down, and I can't get an SSL issues for my new site.
All threads on both issues don't help.
It was supposed to be a 5 minute job and it turned into 3 hours trying to troubleshoot. Now I'll spin up a DigitalOcean server and install a quick WP site.
Fuck both EasyEngine and WordOps <3
I thought EasyEngine would be cool but seeing the very limited community activity it's not worth the risk even having it in a dev environment. -
Wasted over two hours today on a stupid bug: for some reason, every event was handled two times on my local machine.
Why? Because although all services are readonly after instantiation, the EventDispatcher isn't: it is modified when registering event handlers. Meaning the very same instance of the actual EventSubscriber was reused for the async- and sync event dispatcher. Which are just simple wrappers for primary and secondary use cases, but use the _same_ instance of the actual EventSubscriber in my dev-environment as I now know.
Thankfully a shallow clone did the trick. Of course it would be possible to simply create a new instance, but this is one of the few services which are autoconfigured by the framework.
Don't know what to make of this to be honest. "Play stupid games, win stupid prizes!" I guess...