58
Root
245d

> Root struggles with her ticket
> Boss struggles too
> Also: random thoughts about this job

I've been sick lately, and it's the kind of sick where I'm exhausted all day, every day (infuriatingly, except at night). While tired, I can't think, so I can't really work, but I'm during my probationary period at work, so I've still been doing my best -- which, honestly, is pretty shit right now.

My current project involves legal agreements, and changing agent authorization methods (written, telephone recording, or letting the user click a link). Each of these, and depending on the type of transaction, requires a different legal agreement. And the logic and structure surrounding these is intricate and confusing to follow. I've been struggling through this and the project's ever-expanding scope for weeks, and specifically the agreements logic for the past few days. I've felt embarrassed and guilty for making so little progress, and that (and a bunch of other things) are making me depressed.

Today, I finally gave up and asked my boss for help. We had an hour and a half call where we worked through it together (at 6pm...). Despite having written quite a bit of the code and tests, he was often saying things like "How is this not working? This doesn't make any sense." So I don't feel quite so bad now.

I knew the code was complex and sprawling and unintuitive, but seeing one of its authors struggling too was really cathartic.

On an unrelated note, I asked the most senior dev (a Macintosh Lisa dev) why everything was using strings instead of symbols (in Rails) since symbols are much faster. That got him looking into the benchmarks, and he found that symbols are about twice as fast (for his minimal test, anyway), and he suggested we switch to those. His word is gold; mine is ignorable. kind of annoying. but anyway, he further went into optimizing the lookup of a giant array of strings, and discovered bsearch. (it's a divide-and-conquer lookup). and here I am wondering why they didn't implement it that way to begin with. 🙄

I don't think I'm learning much here, except how to work with a "mature" codebase. To take a page from @Rutee07, I think "mature" here means the same as in porn: not something you ever want ot see or think about.

I mean, I'm learning other things, too, like how to delegate methods from one model to another, but I have yet to see why you would want to. Every use of it I've explored thus far has just complicated things, like delegating methods on a child of a 1:n relation to the parent. Which child? How does that work? No bloody clue! but it does, somehow, after I copy/pasted a bunch of esoteric legacy bs and fussed with it enough.

I feel like once I get a good grasp of the various payment wrappers, verification/anti-fraud integration, and per-business fraud rules I'll have learned most of what they can offer. Specifically those because I had written a baby version of them at a previous job (Hell), and was trying to architect exactly what this company already has built.

I like a few things about this company. I like my boss. I like the remote work. I like the code reviews. I like the pay. I like the office and some socializing twice a year.

But I don't like the codebase. at all. and I don't have any friends here. My boss is friendly, but he's not a friend. I feel like my last boss (both bosses) were, or could have been if I was more social. But here? I feel alone. I'm assigned work, and my boss is friendly when talking about work, but that's all he's there for. Out of the two female devs I work with, one basically just ignores me, and the other only ever talks about work in ways I can barely understand, and she's a little pushy, and just... really irritating. The "senior" devs (in quotes because they're honestly not amazing) just don't have time, which i understand. but at the same time... i don't have *anyone* to talk to. It really sucks.

I'm not happy here.
I miss my last job.

But the reason I left that one is because this job allows me to move and work remotely. I got a counter-offer from them exactly matching my current job, sans the code reviews. but we haven't moved yet. and if I leave and go back there without having moved, it'll look like i just abandoned them. and that's the last thing I want them to think.

So, I'm stuck here for awhile.
not that it's a bad thing, but i'm feeling overwhelmed and stressed. and it's just not a good fit. but maybe I'll actually start learning things. and I suppose that's also why I took the job.

So, ever onward, I guess.
It would just be nice if I could take some of the happy along with me.

Comments
  • 13
    I don't even remember saying that, haha. I probably will in a few days, just like the last time with the "we need a new plague" statement.

    I hope you get to move soon. Sometimes I feel like the whole jumping into different companies isn't as bad as others say it is if the reason is finding a good fit and given the amount of assholes and shitty codebase in our industry, it's even more justified. You spend many days working after all and no one deserves to be in hell until after they died. :D

    You can visit our Minecraft world or join me in the beach next week. We can throw coconuts at random people.
  • 2
    Almond is too tired to form coherent paragraphs currently, so you get rambling advice in bullets:

    - When you find something out about the current codebase, *write it down*. Doesn't have to be in any particular format, but the notes will be a good thing to refer back to. I've put entire days aside before just to look at, understand and make notes on a codebase. Coding as you're trying to get your head around something is bound to end in disaster. Separate the two out.
    - Never go back to an old job (definitely not within less than a couple of years of leaving.)
    - No-one is listened to based on whether your advice is correct, you're listened to based on perceived wisdom. That only comes in time. (This sucks, but it's reality.)
  • 1
    - Learning how to work with a mature codebase is a necessary skill to develop, and a very important one. It may not be fun, but in my experience that's the majority of jobs out there.
    - Lack of friends at work is, sadly, the reality of a remote job. I'm pretty much in the same situation (though I care a lot less as I'm an unsociable git anyway.)
    - Asking for help is natural and necessary. Don't use it as a last resort when you give up, note questions down as you go and then ask as you need to.
  • 1
    However, there's good points:

    - Getting a reasonable grasp of payments & fraud rules is a good skillset to have generally. Payments experience is something a lot of employers look out for - so that's something you've got under your belt with this job.
    - A good friend of mine always says code reviews are "the most you'll ever learn". I completely agree, they're essential for *everyone*. One of my biggest gripes in my current role is that I can review everyone else's code, but when I give them mine they just say "looks good to me!" Bloody annoying. Don't give that up.
    - Minecraft with @rutee07 sounds like a good relaxation plan.
  • 1
    @AlmondSauce
    I've spent most of my time reading and trying to understand code, not writing any. Writing anything in an unfamiliar codebase is a terrible idea, wth.

    I'm not sure I agree with not returning, as I
    left on good terms. I don't plan on returning within a year, though; probably longer. which is sad becauseit's the best job i've ever had.

    It's true no one listens to you without respecting you. you need to earn that respect first. it's just irritating sometimes when they're doing dumb things, or missing very obvious things, and simply won't listen because they don't know you, or think you have no idea what you're talking about.

    All code is legacy code. Learning to work with it is absolutely necessary for any developer. Mature codebases are just larger and more intricate legacy code. No surprises there.

    And yeah, lack of friends is the norm. It only bothers me this time because it's a sharp contrast to my previous job where I actually had people to talk to. I also really really liked my bosses,and would have befriended them if I was a little more social. (And/or liked RocketLeague)

    I do need to learn to ask for help more. I'm used to being the only developer, or the only skilled developer, or the only developer with any knowledge of <tech stack>, so I just never think to ask because I've only rarely ever been able to. Definitely something Ineed to work on.

    I agree about fraud and fraud rules, too, though I don't think I'll work in the financial industry again -- at least not as a developer.

    But I absolutely agree about code reviews. I learn more from them than anything else. To be honest, I've felt like i've been stagnating for years because I haven't had anyone else to learn from. If there were other similar-stack devs, they always said I knew much more than them, and they weren't able to help. If I pressed and insisted, they would glance through my code and say "looks good to me!" Sometimes taking less than fifteen seconds. It's exasperating.
  • 1
    @AlmondSauce I appreciate the advice 😊
  • 1
    @Root "And/or liked RocketLeague"

    Ahah! Now that's a game I can get behind 😁

    Totally get everything you've said. And certainly don't take my advice as gospel (there's plenty of other people I respect who disagree with me on the whole returning to a previous place thing too.) And however you deal with the issues, they are beyond frustrating of course - nothing can take away from that, even perfect advice (which mine certainly isn't.)

    Good luck with however you choose to move forward 👍
  • 1
    I had a job where I would explain API deficiencies to some guys configuring a COTS system and request changes. Did they listen or respond? No. I basically had to start a fight with them every time I couldn’t do something because they didn’t want me to be right about a deficiency. I was the only one dealing with that code so nobody could back me up. Also I was remote so they decided to ignore lots of text communications.

    I trained a replacement that was on site. At the end of training he was like, “fuck those guys for ignoring your feedback” because now he had to deal with layers of workarounds and he completely understood why. For that two week stretch of training i had someone that had my back. I hope he is having success badgering them in person. Training him and collaborating was the best week on the project.

    It added a layer of friction and complication that made the work suck.
Add Comment