AboutDev according to my team. Con-man if you ask me. I like to talk about all kinds of things, just not in person unless you buy me a few beer. Then you should get ready for the conversation of your lifetime
Skillslanguage agnostic, debug mind
Joined devRant on 11/9/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Got Salesforce customised by an external company, took over the code and wanted to cry.
So my company decided to get a new crm for sales with contract generation and a whole lot of fluff. Specs included an easy to implement API to connect to our in-house software and an easy to adjust contract Wizard.
After month of checking various companies the CEO finally settled on...
The cheapest German based company.
Turns out the only part that is based in Germany is the sales department, development is based in Poland which made for interesting times during implementation because of the language barrier that comes with non native english speakers.
We as in our development department for told that we wouldn't need to worry about the solution because it would all be developed and maintained by the new company. As we are fairly small that was more then welcome.
Fast forward to integration day. No docs for the API available, contract Wizard is hardcoded, bunch of errors and inconsistencies. Get tickets for them.
Ok we can deal with this. Just tell the ticket writer he needs to address the problems with the external. Yep, doesn't work. External fixes bugs and introduces then elsewhere.
Fml. Ok I'll take a look into the code. Ugh, Java, I hate that shit but at least I don't need to worry about all the fluff, just the code, so it's ok.
No repository present, code is developed in the Dev environment and pushed to prod. Ugly but works. Code comes with a lot of functions but only one real class called "CommonUtilities" ... even the web API is defined in there. Meanwhile my colleague throws out the need for the API because we will just directly tie to SOQL. I'll let's check what's going on here, nice you reused Lead/Account/Contact for the branch offices of companies as well...
Is not like Salesforce has a bunch of logic tied to these objects...
Nice the required implementation of an automatic holiday import is not even there, just a custom object populated with this year's data...
Tell CEO how badly all of this was handled. Nice note this dumpster fire is our new in-house project because CEO cancelled the contract with the external.
Ok we can deal with this, let's set up a repo, define the CI/CD and get the extensions for vscode. Nice now this all makes sense. Fix all bugs and reimplement the contract Wizard using custom objects that sales can change so the contract is actually easily customizable by a non dev. Implement branches as their own object to avoid opportunities, triggers and the likes to be executed for them.
Took a whole day. Why did these 2000 lines of code that was shipped to us take 3 month to implement?
Lesson learned: never trust an external to just do a good job.
New rule implemented by company to always have a Dev check in regular intervals on projects handled by externals for standards and overall logic
10k down the drain for what amounted to 2 weeks tops (one dev) if we had handled the implementation of Salesforce and all the requirements in-house6
Dear font creating/licensing world,
fuck you and your stupid license models from the dark ages.
If I use your font to print a few million newspapers is ok and only about 50 bucks but if I want to include it on my website is going to cost me my first born son for every 50k requests?
No making an image and including is not fucking in the mobile first era...
Now I have to use fonts from Google because they are least fucking understand the needs of our times (in terms of font licensing)19
Last summer we went camping but it was raining for 4 days straight. The first and second day we all went to a nearby mall. On the second day I bought a new mobile router with the only carrier that had reception on the camping grounds. The third day I stayed in the tent coding along while the rest went for the mall. In the fourth day I got angry messages in slack telling me to enjoy my vacation instead of working. Fixed a major bug that day the team had trouble with. It was a very nice vacation and on the fifth day the sun came out and never left until the vacation was over.
My lesson learned was: if it's raining, fix the production bug to get sun again
My sister (12 years my senior) was the first to get a PC that I got access to. Played a lot of Transport Tycoon in it. I still remember the commands to start the game from dos. She showed me Windows 95 one time but I never liked it. Why would anyone need a GUI if the CLI is available?
My love for code started back then I would say.
A year later I got a PC at home. I would be up all night browsing the local BBS until my mother for the first bill... Let's say we were among the first family in our town that got ISDN and a bit later DSL.
Never got a single virus. Partially because I never could understand how people would click the random button and partially because I setup the account for my mother without admin permissions. She was happy with that arrangement until I moved out
When my company moved to the big city we all got new equipment. I selected a ThinkPad and two 24" Dell monitors. Most got themselves a MacBook pro and a 27" Samsung monitor.
Once the new great arrived I started my journey to free the poor ThinkPad from the spy-software that is windows and install Arch.
Everything went smooth until I connected both monitors via MST to the single mini Displayport. Screens flickered, flashed or started dark. Even the display inside the ThinkPad. After half a day of trying to get MST to work with the Nvidia/Intel hybrid graphic inside my ThinkPad I installed Windows on the second ssd and got some actual work done.
The next day I finally managed a static xconf that had all three displays in just the right configuration and I started to work on Linux.
The story would end here if Arch wasn't Arch and I had not installed updates when I did.
After about 6 month of happy working on Linux Paradise I updated Arch since it was overdue (two weeks without). Shit hit the fan. Cinnamon's display manager didn't like my xconf and crashed during startup. Sadly from previous experience I knew that this was the only dm that would work somewhat stable with my hardware comp. I tried to debug, created multiple issues on the various GitHub repos and invested another week into it before dropping Linux again.
I never doubted my knowledge of Linux more than during the times I tried to get MST working with Nvidia/Intel graphics on my ThinkPad.
Recently I switched to a 27" one monitor setup and I'm back on Arch without any trouble because MST isn't in the mix this time.
I guess the story had a happy end after all3
Things that make you regret you are not a normal grunt in any other fucking job outside of software development...
Few years back we had the biggest customer ever close to signing contact with us (b2b). They had a CRM they wanted to connect to our CRM because their users didn't want to use IE with ActiveX anymore, the old software was a fucking RDP over IE to a server behind a VPN.
Boss brags how we can implement every API on Earth with our team and gets the contract signed. Technically not a lie but we agreed on a company meeting a few month prior to not implement each API for every customer but expose one ourselves because we had enough big customers on that one software to not want 100+ unique API connectors in our code.
So we apparently agreed to not only build our side of the API but also pay 2/3 of the bill of the other company for implement their shitty excuse of an API...
Fast forward a few month, talking to the other companies dev daily to get their API up and running, our part is long done. Finally get things set up and data flows... suddenly shit hits the fan. That shitty excuse of CRM can't expose the created and modified timestamps to the API. Webhooks never got implement and now we have no way of knowing which data changed because their side is completely passive.
Fast forward to a few weeks back. Still no solution. Shit is running, barely. Data inconsistency is low because everyone knows they should never change things in the old CRM because the changes might not be synced. (Only one indictor is a custom modified date on the main customer data that only updates if the main data was changed but there are 20+ different possible subsets. Can't get changes in subsets detected, like ever)
One fucking grunt updated 129 customer-profiles in the old CRM. Nothing was synced.
They still use the old shit for billing.
Their it-crowd-guy calls me up:
"Sorry but we need to generate the bills tomorrow and there seems to be some kind of desynchronization between the databases"
No shit? Someone did exactly what we told you not to do and now that one thing we warned you about happened but now it's our fault? Use the fucking force sync button we built for that purpose and that purpose alone. It will only take 7 days because that fucking SOAP API is slow as fuck and you have millions of datasets to sync...
Fml I might just try and jump out the window, sounds like a lot of fun in days like this.
tl;dr never implant against dynamics ax aif soap API if you want to keep some basic level of sanity2
When I started at my company I was full of energy and wanted to improve the whole codebase. After years of getting blocked by new projects with deadlines month short of the actual time required and missing a lot or all important bits (texts, images. you name it, it's missing) I kind of have up.
I do refractoring now and then but it's not as extensive.
My biggest sin was a nested for-loop that I came across (50+ times nested, previous dev really loved c+p).
I looked at it and started to write the recursive function but stopped half way through, fixed that one error I'm the loop somewhere around 30 levels down, committed and made myself a coffee.
I hate myself to this day for giving up.
Shit I'll just factor that loop tomorrow3
Start to work. 15 minutes in boss comes in "do you have a second to guide me through this random part of our online company made software I sell to clients daily because I can't be bothered to use my brain or read any documentation" 2 hours later get back to work...15 minutes in boss comes in again.
FML why can't anybody understand that people need time to get their work done.
End of release cycle: why isn't feature xy finished, you said it should be finished this cycle of no one distracted you to much1