from Hacker News

Ask HN: Stay or Change Jobs?

by garmonbozia86 on 11/12/22, 9:42 AM with 5 comments

Hello! My one-year anniversary at my current job is coming up in a few weeks. Along with the anniversary I will have a "year in review" with my boss (department leader).

I am 36, it's my first programming job after getting a BsC. in computer science and the company I work for sells app solutions that are basically off-the-shelf apps that are stylized and customized to each customer.

The problem is that I am basically not doing any real programming, and I even feel that I am regressing. I am paid very well, more than all of my friends from university, but work is incredibly boring and continuing with my current tasks won't exactly improve my CV and development skills.

These are some of the problems:

- a lot of administrative overhead: a great lack of CI/CD pipeline

- spending time arguing with UX: we are supposed to use standard components in Android/iOS, but they make designs based on web that can't be customized the same way, it sometimes stall tasks for days due to a lack of communication

- no real development tasks: it's more about changing values and adding images to a specific customer than actually spending any time coding

- my colleagues either have little experience, or a lot of experience but without any understanding of design patterns, architecture, testing etc.

TLDR; I spend almost no time coding and most of it on styling, adding images and administrative tasks on backend. I absolute hate all of that.

The positive sides are:

- all my developer colleagues feel the same as I, but I have much less tolerance for how things are going

- I like everyone I work with, even the designers although they frustrate me

- my colleagues want the same improvements as I, but they aren't tough enough to vocalize and press management about it

- my immediate boss knows that the situation is ideal and he knows we are understaffed and is pressuring to get more people

- the technical change to improve the current system is interesting and something I want to do, both CI/CD, improve the structure and reusability of components in the system etc.

I don't necessarily feel that I have wasted a year, but I can't help to wonder how I am regressing in programming skills due to what I am working with. I also despite the way things are set up and how much time is being spent micro-managing all of the manual systems. In a sense I am being burnt out because this kind of work is the exact opposite of what I want to do.

In a few weeks I will have the year in review meeting with my boss. I will be telling all of things and I won't be holding back, we have a very good relationship and can be honest and up front. The thing is, can this actually be salvaged?

I will say that I cannot continue the way things are going, I will demand that improvements and actions are taken so that us developers actually spend time developing and not all of the other administrative stuff – things have to improve, and relatively fast. Especially since I told him during the interview what my goals were as a developer.

I have no doubts that my boss will take these things seriously, but my doubts lie more in how fast things can change and the ability to change as well – mostly because my colleagues are just continuing how things are going even if they are agreeing with me.

There are two basic questions I have from this:

1. should I switch jobs, or is there a chance this can be improved?

2. should I continue with iOS, or is it the norm that mobile apps that are mature basically end up in a continuous maintenance mode?

Personally I value knowing and utilizing certain principles like SOLID. Working with TDD is enjoyable for me, I like design and architecture patterns and creating smart solutions with CI/CD. Optimization is a fun challenge and finding great solutions to a specific problem – whether is it for an entire app, system, or a particular important part of the system.

Thank you for reading the wall of text!

  • by tjr on 11/12/22, 2:06 PM

    Honestly, this sounds to me like... "welcome to the real world of software development!" :-)

    Not saying that every job is identical in every respect, but probably few jobs will ever fit your (or my) definition of perfect.

    Sounds like there are some great opportunities here. If management is at least on board with the theory of doing better CI/CD, then there is probably opportunity for you to lead that! And also opportunity for you to work with management to figure out how to fund it! Customers often don't care about engineering improvements if they can't tell a difference in the end product, so you may have to be creative about how to sell this.

    Likewise, customers don't care about programming. If they think about it at all, they'd probably be happy that most of your work is light customization, as that's less likely to cause them bugs. Understanding what makes customers want to hand over money in exchange for your work is very valuable. You may be able to eventually propose new products or feature that they want to pay for, and that you can write software for.

    I feel like I'm missing context for your iOS maintenance mode question, but sure, "finished" iOS applications need to be maintained for new iOS devices and such.

    If it's really what you want, you probably can find another job that's all (or mostly) coding, and on a team that's already using better practices.

    But on the other hand, I think your job sounds like a great place to learn about what makes customers happy and how to push better engineering concepts from "suggestion" to "funded plan" to "finished".

    As always, beware of career advice from random people on the internet!

  • by tacostakohashi on 11/12/22, 5:51 PM

    Sorry to tell you this, but everything you describe is very normal/typical for 99% of "software" jobs.

    Your options are essentially:

    1) Get good at dealing with all the non-software stuff you are dealing with, the administrative nonsense, arguing with the UI people ("collaborating", "influencing", etc.), interviewing, hiring, and you become a "company man" / middle manager. You can write interesting code on the side as your hobby, or occasionally at work, but it won't be a focus.

    2) Get a job in a situation where programming/software development is actually a core part of what makes the company money. You might find this at some high-frequency trading outfit, hedge fund, investment bank, FANG/MANGA/whatever its called these days - even there, 90% of the software jobs are non-core monkey patching as you describe, but there do at least have some openings where serious programming ability moves the needle for them.

  • by michepriest on 11/12/22, 8:19 PM

    The fastest way to leapfrog your career is move to a new challenge every 12-18 months. The moment you’re stagnant, leave. You can be in a challenging environment at one company, but this doesn’t sound like one of those companies. Their issues are likely systemic. You’re right about losing your skills.

    The only thing we can’t make more of is time. If you’re not willing to risk another year hoping, it may be time to move on to the next challenge

  • by ohiovr on 11/12/22, 10:50 AM

    The grass is always greener. If you have a good paying job, it isn't a great time to switch IMO. But what do I know? I'm working at a grocery store.

    I've quit good paying jobs because of boredom. It was a mistake.

  • by beardyw on 11/12/22, 11:29 AM

    > my immediate boss knows that the situation is ideal

    I am assuming "not".

    Hard to advise in this situation where you are comfortable but not progressing. A decision to jump is one only you can make.