AboutI drink coffee, I hate people and I know things. PHP web dev by day, F# superhero by night.
SkillsPHP, F#, Rust, Haskell, C#, Vue, TypeScript, Angular, AWS, SQL, MongoDB, Kotlin ...
Joined devRant on 11/19/2019
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Recruiters. Recruiters everywhere. I know, I know, F# seems to be the new hot thing now that FP has gained popularity and every bleeding company is looking for one. Well guess what? You got to make a pretty darn good offer for me to jump ship, and no, I’m not going to make much of an effort myself. If you want me, you sell me the job. I’m not going to do the selling here. I’ll come to the interview, do a programming test if I must but I bloody sure won’t tailor you a fucking resume. Everything’s on LinkedIn and here, have a link to my gh acco. That should be enough. No? Well go fuck yourself!5
I have this bad habit of starting projects that are way out of my league after getting ridiculously over-ambitious ideas.
”Yeah, let me just do this <insert ambitious project in an area of programming I know next to nothing about> with <insert languge I’ve never written a line with before>. It’ll be fine...”
At the job interview to my current position I was asked the classic ”where do you see yourself in X years” question. I replied something along the lines of that I see myself staying if I feel good where I am and long as I have the opportunities for professional growth.
Now with recent developments it’s looking like those opportunities will be bygone pretty soon. I work on a massive legacy codebase, where with the scarcity of current dev resources and the apparent difficulties of procuring additional personnel to the dev dept, it does look like we’ll be limited to maintenance and simple small scale improvements with no room for meaningful projects. Theoretically I could ask to be moved to another product, but realistically that would both be a dick move well as unlikely to happen, as other projects are fully staffed (and made with technologies there’s easier to find personnel to).
As a consequence of this perceived imminent halt in opportunities for self-development at work, I’ve been starting to look for greener pastures. There are some intriguing ones out there. But then I come here, read some rants and comments, and it always becomes abundantly clear I’m good where I’m at right now. So what of it, if my position won’t enable growth out of the box for a while? I can always develop my skills and knowledge on my free time, and besides, the stagnation won’t last forever... right?12
I’ve been an angry old man this week. Frustration is a bitch, especially when you can’t really pinpoint the source of it with any resemblance of certainty.
Maybe it’s that having been constantly stressing over the impending graduation and the effort required to get there with too little time and energy to actually achieve it is boiling over.
Maybe it’s the reality of having absolutely zero me time since last March playing fucking ping pong with my head.
Maybe it’s me having trouble getting back to terms with a certain codebase after being assigned to other projects for the last almost 1,5 years and now trying to finish something the ex-lead started before he left.
And most certainly it’s the constant stream of brainless verbal vomit that raises the misanthropy levels through the roof.
Fucking juniors, fucking seniors, fucking Swedes, fucking C-level arseholes, fucking green dots, fucking idiots, fucking ”woke” ass social media influencers, fucking posers - Fuck You All!5
I just wrote ”o fuk u vue” as a commit message. That’s how I feel about the composition api fucking me in the arse at every turn.4
I read something LinkedIn -related just now in here, and it kind of made me think. Not really, but whatever it was, brought my mood down some...
It’s a good thing I’m not looking for work at the moment, and I’m quite happy where I am right now, because what I see in LinkedIn depresses me. More specifically, the language and/or framework experience companies are looking to recruit... Java this, Python that, React everywhere... and then there’s the M$ shops... (oh and Scala - surprisingly much Scala, waduheq?) Urgh...
Don’t take it wrong, I totally understand sticking to the tried and tested tools you just know there’s devs aplenty who know their way around them. It’s just from the perspective of someone who prefers to use one of the better tools for a job, it breaks my heart to not see them utilized more, and it makes me think what I would do if I was fired rn? (Unlikely, but theoretically...) Tbh, I don’t know. Probs apply to one of the few F# jobs out there, even when I knew I’d probably have to work on a Windork machine again (pls no), but due to the drawback I just mentioned, not such a bright prospect after all...4
I’m becoming really frustrated working with my current project. It’s like someone’s dog ate the requirements and all stakeholders are on a different page on what’s needed/wanted. I’m fishing for the info I need and try to decipher the vagueness I get. I know I could just call a meeting and try to get us all on the same page there - but I’ve been in a few meetings with this specific lot of people, and I know it’s just going to end up in much more confusion...3
Goals, eh? Lemme see...
- Graduate so I can get that raise I was promised.
- Finally get started on some side projects and/or have the time to contribute to some projects, OSS or not.
- Learn Haskell and Kotlin properly
- General improvement (learn, learn and learn)10
For everyone wishing us happy new year bs here: go fuck yourself, I hope your year will turn worse than the previous13
Best: working with F#, hands down the best development experience ever for me!
Worst: this is a little harder, but I’d give the questionable honor for any experience working with one of our juniors on JS... or just working with SwiftUI - mobile development hasn’t been a good experience for me by any means so far, but working with SwiftUI has been the worst of them.
// EDIT: I just remembered it was this year when I needed to do stuff with Python. EASILY the worst development experience...
Remember how I was - against all that was promised - assigned to a time-sensitive front-end (so definitely not my forté) project about a month ago? Remember how I struggled with the choices of how to go about it - switching from F# (Fable) to Rust (Yew) to eventually settling in with Vue and TS?
Yeah, I’m glad I went that way, even though there could’ve probably been better choices out there: my part is done now, even though it’s not quite prod ready yet (close tho), the team who’ll maintain it takes it over now, after I finish dealing with my current minor issue. And damn their front-end guy is GOOD. Makes me feel very inferior in that department. Well, I am. Back to back-end, thank you very much...
But I have an issue here, that bothers me. I’ve produced a codebase that’s obviously written on a tight schedule: no tests, no documentation, a few embarrassing hacks/workarounds and so forth. I actually feel bad for leaving it out of my hands to them in such a state...1
I don’t trust anyone who doesn’t like Led Zeppelin, and even less so anyone who thinks putting pineapple on a pizza is even remotely OK.10
So about that job offer (https://devrant.com/rants/3654950/...)
After a weekend of deliberation, I’m going to turn down an offer with a roughly 40% raise to my current salary and the opportunity to work with a language I rly like. Sounds crazy, eh? Maybe it is, too.
However, while the raise woul’ve been great, the job itself sounded interesting enough, and I didn’t think I’d pass on such a chance, I do value my current position, colleagues, the atmosphere at the office, the way - while a little underpaid - we are taken so well care of as employees by our management. It does make for an environment where going to the office and doing your job is a joy.
I think the company I work for rn has more to offer for me, and I have more to offer to them. It’s not my time to jump the ship just yet.3
This begs the question: how do you define being good at programming? How can you tell if you are actually good or just think you are?
Having asked that, I think I’m getting there... by reading other people’s code, by listening to feedback from better devs than I am, by asking questions and discussing matters I may not fully comprehend, by reading books and articles, by trial and error and by constantly seeking new concepts, languages and other relevant matters to learn. That’s how one becomes better - when one is good, is another story altogether.1
So I got approached by a recruiter... not from a recruitment consultant company, but from the company offering the position - which is a refreshing change. Now I have a dilemma....
On the other hand I’m really interested in their offer since the way they approached me by basically saying ”noticed you can do F# and we need F# devs” - so I have a chance at getting a job programming with the language I really like. And these opportunities don’t come around often, since F# isn’t really widely used anywhere it seems.
The caveat is, I really really enjoy working where I’m at now, even tho I mostly work with PHP (with the occasional Vue, C# and F# thrown in), but the atmosphere is unparalelled, my colleagues and my manager are the best, and the benefits are better than most companies can offer - so I’m a bit reluctant to change employer, especially since I have personally interesting projects coming up soon on the roadmap.
What should I do if the details for the offer I get are worth considering?15
Cont. on: https://devrant.com/rants/3533743/...
So yeah, kind of had to figure out the semi-hard way that Yew really isn’t prod ready yet (as they clearly state somewhere). Too bad. Or maybe because I don’t have the experience in Rust to overcome some of the issues I’ve had... so it’s back to plan B, id est Vue with TS. At least I got much of the thinking work done already, so I could just write the damn code - and the stuff I had problems with in Yew were all simple for me in Vue.
Or that would’ve been the case if I hadn’t decided to use the newer composition API instead of the options API already familiar to me. Damn it took me all day to wrap my head around it and I’m sure there’s much more head-wrapping to be done. Still, I’m likely done with this at least 2-3 weeks before the deadline, so I can maybe spend the some time figuring out the Yew implementation, too... not sure why, but maybe it ends up better?1
Cont. on: https://devrant.com/rants/3492672/...
... Fable as a framework is a hot confusing mess with little to no documentation. Gorram it. I was kind of excited for the prospect of ”F# Everywhere”, but if you have to turn such a beautifully concise lang into a hot chaotic mess to make a framework for web front, then no thank you, I’ll try something else that isn’t JS...
So I decided to lose my Rust virginity and give Yew a shot... never have I ever written a frontend this fast! Holy crap, I’m baffled...4
”We’re not going to shuffle you (devs) around from project to project and definitely not taking on any new time-sensitive projects with the limited resources we have, seriously understaffed as we are atm” - that was the promise.
So today I got assigned to a time-sensitive project (unconditional deadline by the end of the year) on a product I am not at all familiar with... I almost believed 2 projects underway was enough so that it would not get assigned to me. Oh well, there’s always room for a 3rd.
At least I get to pick my tools so I get to try out Fable... a silver lining there, and not really a thin one.3
Bad (or at least uninformed due to unclear requirements) design decisions lead to somewhat perplexing (and above all, frustrating) problems down the line...
Here I am, wrote a cli client for event bus subscription, and since EC2 is eqv to Docker, had to fix the main function to keep it alive - now the deploy stage on the ci/cd pipeline fails due to startup script timing out. But why tho?
I’m not really sure whether I should’ve designed this differently from the get-go or whether my build and deploy configs don’t match anymore due to recent changes and I should figure out what’s wrong with them... or both.
Bottom line is: I have no idea what I’m doing.9
I was bored so I scanned through Dev.to and Medium. I lost the remnants of the little hope I had left for mankind...
JS this, Python that, JS that... and so much other mindless articles of exactly zero substance and headlines to make any self-respecting dev cringe for days.
I meant to write something else, too, but I'm too saddened now. I no longer wonder why so many of the fresher self-made "devs" are so idiotic of a breed...35
How does it always go to this...
It is a rare occasion I get to be the only human being at home during evening time, so I really should make the most out of it (my own space and peace is really important to me, so living with another human being is exhausting, no matter how much I love them), yet I find myself yet again slouching on the sofa trying to figure out what to do and commenting on rants while time flies by and I find the hour so late there's no point in starting to do anything anymore...
What a waste of perfectly valid oxygen..2
Solution for some reason doesn't work correctly on dotnet core so I try with framework => works. Develop a bit further, not touching anything that happens BEFORE the broken point. Then done far enough that actually have to seriously think about deployment. Framework solution is a headache => decide to try dotnet core again and hopefully find a fix for the broken part => magically everything works. What? WHAT?
Don't you just hate it when there seems to be nothing but in some ways lacking solutions to a definite task in your capability arsenal? Or rather, I don't really know how I should feel about it... I've been developing this solution to receive a 3DES encrypted Azure Service Bus message, decrypting it and chewing the output XML down so as to be digestible to the PHP application whose API the message gets delegated to... but there just seems to be no perfect solution: subscribing to the event topic straight from the target app just... doesn't seem to work properly, a Python implementation.... well, let's just leave it at that... a Node.js implementation would require TS and completely rewriting a proprietary library with 100+ complex types - also, there's some hiccups with both the subscription and the decryption...
I started with an F# implementation (after deeming the PHP one flawed), and it seems it's still the best. But goddamn it I had problems with it on the dotnet core side of thing (decryption output incorrect), so I had to switch to dotnet framework... Now finally everything crucial is peachy, but I can't seem to be able to implement a working serialized domain model pipeline to validate the decrypted message and convert it to something easier to digest for the target application (so that I could use the existing API endpoint instead of writing a new one / heavily modifying the existing implementation and fear breaking something in the process...). I probably could do it in C#, I don't know, but for the love of Linus I'm not going to do it if I can avoid it, when implementing the same functionality I have now without the Dto and Domain type modules would take 3x LoC than the current F# implementation incl. the currently unused modules!
And then there's the problem of deployment... I have no idea what's the best way to deploy a dotnet framework module to an app completely based on MAMP running on a mostly 10yo AWS cloud solution. If I implemented a PHP or Node.js solution, it'd be a piece of cake, but... Phew, I don't know. This is both frustrating, overwhelming and exciting at the same time.7
Cont. on this: https://devrant.com/rants/2991618/...
So, after I gave them my estimates and pricing and whatnot, they msgd me back a few days ago.. guess what?
"We're going to go with the dude making that [shitty] WP site for free, we'll be in contact again when we need the online store" ... No surprise. Somehow it just baffles me how people think devs' work is nigh on free even though the avg salary of a dev is known to be quite high. Like how can you not count 1+1=2?
Now this is truly fucked up...
What wouldn't one due to solve problems... Nonetheless, how low can one go?23
Halp meh, plz... I have run across a problem and I have absolutely no idea how to go about solving it...
So basically I need to decrypt a TDES encrypted Azure service bus message. Can be done in a straightforward manner in .NET Framework solution with just your regular old System.Security.Cryptography namespace methods. As per MSDN docs you'd expect it to work in a .NET Core solution as well... No, no it doesn't. Getting an exception "Padding is invalid and cannot be removed". Narrowed the cause down to just something weird and undocumented happening due to Framework <> Core....
And before someone says 'just use .NET Framework then', let me clarify that it's not a possibility. While in production it could be viable, I'm not developing on a Windows machine...
How do I go about solving this issue? Any tips and pointers?12
I ate pizza yesterday. A very different configuration than I usually go for.
WORST. MISTAKE. OF. MY. FUCKING. LIFE.52
One of the many good things about F# is that it seamlessly integrates with the .NET ecosystem, right? Very handy in an enterprise environment where in order to get anything done you have to use in-house nugets and tediously building a C# app for something you can do in about 30 LoC in F# just doesn't make sense...
... And then you run into the one fucking namespace in the whole ecosystem that just DOES. NOT. WORK. with F#. What the actual fuck M$?!
In all other cases Func<T',Task> in C# translates into T' -> Task in F#, but not here. "Oh, you're trying to give me Func<T',Task> -> Task? Can't do". Fuck that.9