Details
-
AboutWebdeveloper doing mainly .NET and AngularJS.
-
LocationZwolle, The Netherlands
-
Github
Joined devRant on 9/9/2016
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
-
My employer has this really cool thing. Where if I do my job very well, I get to do other peoples jobs too!13
-
Yesterday: Senior dev messages out a screenshot of someone using an extension method I wrote (he didn’t know I wrote it)..
SeniorDev: “OMG…that has to be the stupidest thing I ever saw.”
Me: “Stupid? Why?”
SeniorDev: “Why are they having to check the value from the database to see if it’s DBNull and if it is, return null. The database value is already null. So stupid.”
Me: “DBNull is not null, it has a value. When you call the .ToString, it returns an empty string.”
SeniorDev: ”No it doesn’t, it returns null.”
<oh no he didn’t….the smack down begins>
Me: “Really? Are you sure?”
SeniorDev: “Yes! And if the developer bothered to write any unit tests, he would have known.”
Me: “Unit tests? Why do you assume there aren’t any unit tests? Did you look?”
<at this moment, couple other devs take off their head phones and turn around>
SeniorDev:”Well…uh…I just assumed there aren’t because this is an obvious use case. If there was a test, it would have failed.”
Me: “Well, let’s take a look..”
<open up the test project…navigate to the specific use case>
Me: “Yep, there it is. DBNull.Value.ToString does not return a Null value.”
SeniorDev: “Huh? Must be a new feature of C#. Anyway, if the developers wrote their code correctly, they wouldn’t have to use those extension methods. It’s a mess.”
<trying really hard not drop the F-Bomb or two>
Me: “Couple of years ago the DBAs changed the data access standard so any nullable values would always default to null. So no empty strings, zeros, negative values to indicate a non-value. Downside was now the developers couldn’t assume the value returned the expected data type. What they ended up writing was a lot of code to check the value if it was DBNull. Lots of variations of ‘if …’ , ternary operators, some creative lamda expressions, which led to unexpected behavior in the user interface. Developers blamed the DBAs, DBAs blamed the developers. Remember, Tom and DBA-Sam almost got into a fist fight over it.”
SeniorDev: “Oh…yea…but that’s a management problem, not a programming problem.”
Me: “Probably, but since the developers starting using the extension methods, bug tickets related to mis-matched data has nearly disappeared. When was the last time you saw DBA-Sam complain about the developers?”
SeniorDev: “I guess not for a while, but it’s still no excuse.”
Me: “Excuse? Excuse for what?”
<couple of awkward seconds of silence>
SeniorDev: “Hey, did you guys see the video of the guy punching the kangaroo? It’s hilarious…here, check this out.. ”
Pin shoulders the mat…1 2 3….I win.6 -
This story is 100% true.
I got hired onto a team of construction workers to build a house. We set up a meeting with Management to find out what kind of house they wanted us to build, where’s the floor plan, what it’s going to be used for, who it’s for, etc. Management said that they didn’t know all that, we should just get started. They told us that we were going to use “Agile” which means that we just work on small deliverables and build the thing incrementally.
The developer team lead argued that we at least need to know how big the thing is going to be so that we can get started pouring the foundation, but Management told him they just don’t know. “What we do know,” Management said, “is that the house is going to have a bathroom. Just start there, and we’ll know more when it’s done. You have two weeks.”
So we just bought a port-a-potty, and screwed around on the internet for two weeks. Management was outraged. “You call this a house? This is the worst house ever! It doesn’t even have a tv!”
So we bought a tv and put it in the port-a-potty, attached to an outdoor generator. We were going to buy a a dvd player and get it hooked up to cable, but Management rejected the expense request, saying that they didn’t know if we needed it, and we’d come back to that later.
Management decided that we definitely need storage space, so we bought a boxcar and duct-taped the port-a-potty to it. Then to our horror they set up some desks and put a few miserable business interns in there. It went on like this…
After a few years the boxcar grew into a huge, ramshackle complex. It floods, leaks, it’s frozen in the winter and an oven in the summer. You have to get around in a strange maze of cardboard tubes, ladders and slides. There are two equally horrible separate buildings. We’re still using just the one outdoor generator for all power, so electricity is tightly rationed.
Communication between the buildings was a problem. For one of them, we use a complex series of flag signals. For the other we write notes on paper, crumple the paper up, and toss it over. Both of these methods were suggested as jokes, but Management really liked them for some reason. The buildings mostly talk to each other but they have to talk through us, so most of what we do is pass messages on.
It was suggested that we use paper airplanes instead of crumpled up balls, but the fat, awkward fingers of the Business Majors who inevitably take those jobs couldn’t be trained to make them. I built an awesome automatic paper airplane folder, but once again they couldn’t be trained to use it, so they just went back to crumpling the notes up in balls.
The worst part of all this is that it’s working. Everyone is miserable, but the business is making money. The bright side is that this nightmare complex is done so now we know what kind of building they actually needed in the first place, so we can start work on it. Obviously we can’t tell Management anything about what we’re doing until it’s finished. They noticed the gigantic hole in the ground where the foundation is coming in, but we told them that it’s a cache reset, and they mostly ignore it except when the occasional customer falls in.
I’ll probably be out of here before the new building gets finished. I could get a 50% raise by switching jobs, but Management still doesn’t think I should get a raise because I missed a couple sprints.7 -
Non-dev friend : hey I've got a cool idea, we'll create a site where people can post jobs and people can bid for it. We'll name it freelance.com. We gon be rich!!!!..
Me: okay....
Friend: so you in?
Me: No.
Friend: It's really easy, just build it like you built that website you did the other day (talking a landing page he saw me do in a week). In 2 weeks, we'll be millionaires. You'll do all the programming stuff, so you get 30% of the money, I'm the idea guy so I get the other 70%. About that, you in now?
Me: have you heard of odesk, freelancer, jobberman.
Friend: no... Does a freelance site exist.
Me: boy, it's 2016.
Friend: I just thought of it few minutes ago and my other friends thought it was a great idea.
Me: 🙈🙈🙈🙈😶🔫🔫🔫13 -
Today's my lucky day for job rejections...
"Unfortunately we have decided not to proceed with you as a candidate because the salary range you expect lies outside our budget."
That's very interesting indeed because in the very first interview (phone call) you asked me about that range and I gave it, straight and simple.
Then I had to do a coding challenge, which I usually refuse, but did anyway. It took about 15 hours. Let's not forget that it had nothing to do with the job I was applying for, but OK.
After that, a second interview, which took 1.5 hours and a third, which gobbled up 2 hours of my time.
Then you tell me that you're not willing to fork over the dosh, after having wasted 18.5 hours of my time!
Thank you very much, you anus blossoms!9 -
Stop fooling yourself by thinking that the hurry & pressure will eventually go away if you work overtime & stretch yourself to heroics weekly. They won't, and they never will (and even shouldn't). Focus on building sustainable habits that propel you towards your goals day by day, and don't give up until you're where you want to be. Period.2
-
This is more on work and life balance.
1. Don't do hard work, but do 'Smart work', else you will end up burn yourself 100%.
2. Don't think your manager is your guardian angel, even though it seems like sometimes. He has his own goals to achieve.
3. Spend considerable time daily in and out of office/work, for your own development/improvement.
4. Learn new languages and technologies.
5. Stop making things perfect, 'good' is enough.
and it goes on ............3 -
logger.info(String.Format(" User {0} changed their password from {1} to {2}", username, oldPassword, newPassword))
Production system. Plaintext log.10 -
Picked up a legacy site to re-build, turns out just adding:
'?admin=1'
to the query string gave you full admin rights to the entire site without having to authenticate. The site was live for 2 years.3 -
An SEO expert walks into a bar, bars, pub, inn, tavern, public house, Irish pub, drink, drinks, beer, alcohol...
-
Anyone else ever had a scrum master or a project manager that just drives them insane?
Like they bug you every hour asking "what's our eta?", "are you done yet?", etc.
And they turn everything into a 2 hour long meeting (including standup) where everyone on the team is required and then they wonder where all the budget went.
And you have to explain the same god damned thing to them over and over again at these meetings. I wish they could be just technical enough to understand. -
Heard a new one from the client today.
Said with a straight face, "You guys write your HTML in all caps, right? It's better for SEO."6 -
!rant
After over 20 years as a Software Engineer, Architect, and Manager, I want to pass along some unsolicited advice to junior developers either because I grew through it, or I've had to deal with developers who behaved poorly:
1) Your ego will hurt you FAR more than your junior coding skills. Nobody expects you to be the best early in your career, so don't act like you are.
2) Working independently is a must. It's okay to ask questions, but ask sparingly. Remember, mid and senior level guys need to focus just as much as you do, so before interrupting them, exhaust your resources (Google, Stack Overflow, books, etc..)
3) Working code != good code. You are an author. Write your code so that it can be read. Accept criticism that may seem trivial such as renaming a variable or method. If someone is suggesting it, it's because they didn't know what it did without further investigation.
4) Ask for peer reviews and LISTEN to the critique. Even after 20+ years, I send my code to more junior developers and often get good corrections sent back. (remember the ego thing from tip #1?) Even if they have no critiques for me, sometimes they will see a technique I used and learn from that. Peer reviews are win-win-win.
5) When in doubt, do NOT BS your way out. Refer to someone who knows, or offer to get back to them. Often times, persons other than engineers will take what you said as gospel. If that later turns out to be wrong, a bunch of people will have to get involved to clean up the expectations.
6) Slow down in order to speed up. Always start a task by thinking about the very high level use cases, then slowly work through your logic to achieve that. Rushing to complete, even for senior engineers, usually means less-than-ideal code that somebody will have to maintain.
7) Write documentation, always! Even if your company doesn't take documentation seriously, other engineers will remember how well documented your code is, and they will appreciate you for it/think of you next time that sweet job opens up.
8) Good code is important, but good impressions are better. I have code that is the most embarrassing crap ever still in production to this day. People don't think of me as "that shitty developer who wrote that ugly ass code that one time a decade ago," They think of me as "that developer who was fun to work with and busted his ass." Because of that, I've never been unemployed for more than a day. It's critical to have a good network and good references.
9) Don't shy away from the unknown. It's easy to hope somebody else picks up that task that you don't understand, but you wont learn it if they do. The daunting, unknown tasks are the most rewarding to complete (and trust me, other devs will notice.)
10) Learning is up to you. I can't tell you the number of engineers I passed on hiring because their answer to what they know about PHP7 was: "Nothing. I haven't learned it yet because my current company is still using PHP5." This is YOUR craft. It's not up to your employer to keep you relevant in the job market, it's up to YOU. You don't always need to be a pro at the latest and greatest, but at least read the changelog. Stay abreast of current technology, security threats, etc...
These are just a few quick tips from my experience. Others may chime in with theirs, and some may dispute mine. I wish you all fruitful careers!221 -
That moment when your boss is introducing the new guy and you are silently making a list of all the git repos you need to back up before he makes it to his desk.
-
Sometimes when I code, I plug in my earphones and listen to music, focused, in zone.
* I let everyone think that.
** I actually don't listen to anything.
*** Keeps the buggers away!10 -
Worst part of being a dev: "we need this done by the end of the week"
Me: "ok what are the specifications?"
PMs: "not sure yet, we have a meeting with the client on Thursday."
Me: "cool, I'll look at it Monday."
Don't come to me with deadlines before you know what I'm building. -
Real programmers don't comment their code. It was hard to write, it should be hard to understand.24