19

I'm in my first job as a software engineering grad in Canada. I took a job with a government agency this September after an offer fell through late (April) and I took the first job I could (as you will see, I am a person who needs proof that I am capable and that offer was a beacon in a mess). It has good pay (especially for my area which is not a software hub), but I can't wait to get out of there every day.

The problems:

  1. They are extremely cheap when it comes to software spending for the developers. Bug tracking system? Too expensive. So we just don't track bugs in a centralized way. Independent QA systems? No, the three QA testers must either use one test server or learn to compile software themselves. We were told to just keep renewing our IDE trials every 30 days, so they don't pay for those either. We have very minimal access to cloud services because of the cost. We have to go easy on Jenkins to conserve hard drive space.

  2. The team is inexperienced as everyone gets hired on a temp to hire contract. The median time for a developer there is currently 6 months. The only person to be there more than a year is our lead. As a result, nobody knows anything about the systems.

  3. They oppose documentation because of "Agile." Forget documenting code, they don't even document features. I have been repeatedly assigned to develop features which already exist.

  4. Things just move so slowly. Each developer is supposed to do 21 points of work a sprint and a sprint is two weeks. I have consistently finished in under 6 days, including unit and Selenium tests (myself and the new QA are the only ones to do this type of testing). They don't finish and accuse me of "pushing the pace."

My background. I have never had a proper software job before, so I don't know if it the environment or the job I hate. Past jobs were in quantitative finance, where the work was highly individual, as well as at a startup, where I was one of two developers. This is the first job where I don't make my own calls as to the pace of work or how complex things are, or don't get much insight into the project and just get handed widgets to do.

What are my options after 6 months? A friend offered me a spot with her startup (I have done all their prior dev work), but with a recession plausible in the near future in Canada, I'm worried that 6 months as a government worker and time as the main dev at a startup will look absurd on a resume.

I realize this isn't a discussion forum, so I have two clear questions.

  1. Is this normal for software development? Is it representative of your experiences?

  2. If it is not, then what can I do for my market value in the next few months (I'll stick around until at least March to avoid seeming like a job hopper).to exit effectively? I have a good engineering degree from a top Canadian university, good grades, a pile of hackathon awards (and can get more if they are useful), have a decent project to show off (my friend's tech startup website), etc. I have an ok StackOverflow profile too if that is worth anything (2000-3000 points and 150ish answers).

It's just how to deal with landing badly after university which scares me.

  • What kind of stack are you using in your current job? Not just the software, but databases and servers too. – Matthew Gaiser Dec 10 '19 at 4:49
  • @MatthewGaiser React, Spring, MySQL, Apache server, git, etc. – ihatemyfirstjob Dec 10 '19 at 4:51
  • @ChrisStratton I tried documenting stuff on the project wiki. They were not pleased with that attempt. Might be able to do more on the tooling. – ihatemyfirstjob Dec 10 '19 at 4:55
  • 1
    This represents lots of questions in one - I would split the post. Either way, get out now. This is too many red flags. Their cheapness is actually costing them money - throwing expensive human effort at what should be automated. – speciesUnknown Dec 10 '19 at 12:44
  • Seize the day: download Bugzilla and run it on some machine around the office. QA? let them learn; it advances their careers. IDEs? Jetbrains IDE license can be had for really short money if you buy them yourself. – O. Jones Jan 31 at 19:23
38

Tld;dr - no, it's not normal - why are you still there, especially if you live up to the summary you gave of yourself?


Bug tracking system? Too expensive. So we just don't track bugs in a centralized way.

https://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems - just look at the free ones.

5 Best Free and Open Source Bug Tracking Software for Cutting IT Costs et al - just DuckDuckGo

Even if you paid, it would be "expensive" in dollars, but "cheap" in time, and even a mediocre issue tracker will save more in dollar value than it costs.

This is a major red flag of unprofessionalism.

You forgot to say that you don't have a version control system either, but maybe you didn't learn of those at Uni, and if your company doesn't use one, you can't be expected to know of them. Suffice it to say, lack of one in another major red flag of unprofessionalism.

Independent QA systems? No, the three QAs must either use one test server or learn to compile software themselves.

Why isn't Jenkins building the software for them?

Lack of standardized build system is yet another red flag (and I personally consider it to be major, since you have testers testing ... well, who knows what, really? And, if you don't know what version & configuration of the software they are testing, then how can you fix bugs?).

We were told to just keep renewing our IDE trials every 30 days, so they don't pay for those either.

This is probably illegal. Red flaggy enough for you?

Seriously, I have worked in small companies in Asia who took this penny-pinching, "here's a floppy, gimme a copy" approach - things did not end well.

We have very minimal access to cloud services because of the cost.

Cost of the likes of AWS, or just internet access? Either way, this particular red flag has the motto "penny wise, pound foolish" stitched across it.

We have to go easy on Jenkins to conserve hard drive space.

At this point, I hardly know whether to ROTL, drop my jaw in astonishment, or wonder if you are trolling us

A quick look at Amazon Canada found an 8tB hard drive for CAD 179.

You can fit many, many, many, Jenkins builds on 8tB.

Same red flag as the cloud services.

The team is inexperienced as everyone gets hired on a temp to hire contract. The median time for a developer there is currently 6 months.

Are people leaving, or being let go? I might guess that they are let go, because the company can pay a probationer less than someone with their probation behind them. Either way, once the mass exodus starts, it is extremely difficult to stop, as new hires find that the only knowledge of the system is in the head of one or two key figures, and get out of dodge. I will not be renewing my current contract precisely because of this. I once had the great pleasure of spending years telling higher management about the bus factor and having them ignore me, only for the lead engineer to leave.

The only person to be there more than a year is our lead. As a result, nobody knows anything about the systems.

They oppose documentation because of "Agile."

I have heard that BS before - "Agile says that we don't need any documentation". To quote from the Agile Manifesto:

Through this work we have come to value:
Working software over comprehensive documentation

Personally, I am an old school, waterfall guy, who always worked mega projects and don't see how you will get - or maintain - that working software without comprehensive documentation, but, let's not quibble about that ; the red flag here is that they claim to be Agile and either have not read the basics, or choose to ignore them.

Forget documenting code, they don't even document features. I have been repeatedly assigned to develop features which already exist.

Jaw drops!

Things just move so slowly. Each developer is supposed to do 21 points of work a sprint and a spring is two weeks. I have consistently finished in under 6 days,

Then perhaps you are awarding too few points, or expecting too little per sprint. How do the other guys feel? While not major, this could well be a red flag.

BTW, if you have free time at the end of the sprint, don't just spin your wheels - set up a build script for QA, comment code, add unit tests, set up a free issue tracker & convince management of its value.

including unit and Selenium tests (myself and the new QA are the only ones to do this type of testing).

Why only you?

They don't finish and accuse me of "pushing the pace."

Ah, so, it's just you - sounds like you are the next senior lead ;-) Either take on more points, or put your free time to good use for the project. If what you do benefits your colleagues, they are less likely to accuse you of "pushing the pace", as their pace will increase (why not teach them to use Selenium?).

1 Is this normal for software development? Is it representative of your experiences?

This is absolutely not normal - and certainly not acceptable. Some jobs have some of those flags, but that many??!! You have enough red flags there to start a communist revolution!

2 If it is not, then what can I do for my market value in the next few months (I'll stick around until at least March to avoid seeming like a job hopper).

Personally, I would not. If someone will accept you now, then one short stint, especially your first job, is not going to look too bad. However, it is IMPORTANT to remember that interviews are a two way street, so at any future interview, ask then about Version Control, Issue tracking, documentation, documentation reviews, code reviews, unit test and any other Process which you consider to be important. Expect them to guild the lily & hope that they don't flat out lie (check out GlassDoor, consider going to a company where you already know someone on the inside).

I have a good engineering degree from a top Canadian university, good grades, a pile of hackathon awards (and can get more if they are useful), have a decent project to show off (my friend's tech startup website), etc. I have an ok StackOverflow profile too if that is worth anything (2000-3000 points and 150ish answers).

Then you should have no trouble finding your next position. Get out, while the getting is good!!

You have my sympathies.

| improve this answer | |
  • 1
    "why are you still there, especially if you live up to the summary you gave of yourself?" Worried about seeming flaky and not up for it on my resume. "You forgot to say that you don't have a version control system either" Haha, we at least use git! – ihatemyfirstjob Dec 10 '19 at 13:20
  • 1
    "as new hires find that the only knowledge of the system is in the head of one or two key figures" OMG yes! That's a problem for us too. – ihatemyfirstjob Dec 10 '19 at 13:22
  • 7
    You have enough red flags there to start a communist revolution - Gotta love that one :) – rkeet Dec 10 '19 at 15:21
  • 3
    Like OP, I’m also in a low documentation workplace. To answer your question about “working software”, it basically seems to require that “working” be vaguely defined. If a business doesn’t have well defined requirements, there is a lot of room for whatever you come up with to work. I had to build an auditing system a few weeks ago. What needed to be audited? Wasn’t specified in much detail. We just recorded every change to the database and that seemed fine. – Matthew Gaiser Dec 10 '19 at 16:13
  • 4
    "comprehensive documentation" - you may not have encountered really comprehensive documentation, and that is truly a lot of time perhaps better spent writing code. Sufficient documentation is however a completely different matter. – Thorbjørn Ravn Andersen Jan 30 at 17:22
6

Fellow Canadian (and developer) here, and furthermore, formerly employed in the public sector. Good job being aware of the coming economic downturn, and worried about how your resume is going to look in a worst case scenario.

A government office is a great place to weather the economic storm that is likely going to hit, so there's a damned good case to be made for sticking with your current employer. However, there's a few things that you simply have to understand, and accept regarding the government as an employer, and the kinds of people those jobs typically attract:

You have work ethic, and appear to be a go-getter, which is exceedingly rare for government employment. People like you typically either leave due to extreme frustration with their environment, or are driven out because they disrupt the status quo.

That environment is geared towards people who get 4 hours worth of work, and finish it in a week. Maybe. They'll get requests for features that already exist, and say they're going to need a month to implement them, while actually reading novels, or going for 3 hour lunches.

Now, this is not all bad, however. A lot of people are unaware of how things actually work in government agencies (so it won't look bad on your resume, on the contrary), and you may get to play with systems that are very expensive, or important. It can sound prestigious on a CV.

The downside, is that you feel like you're the only sane person, or at the very least the only one who gets any work done. There's a few ways to deal with this.

  1. Become aware of all the different things that you're learning in the office.

Make it a weekly or biweekly ritual to actually sit down and think about the different experiences you've had. Write them down, or at least mentally acknowledge them. In particular, you'll learn how to navigate political situations, and become much more aware of the way in which personal relationships, and not competence, influence decision making.

  1. Develop your politicking muscles.

If you're past probation, the chances of being fired are essentially zero. Heck, even the chance of not passing probation is exceedingly low (as are their standards). Probably the most valuable experience you're going to get there is relating to office politics.

Read books on office politics, making friends and influencing people etc. and practice those skills. Learn to get along with your team, manager, stakeholders, etc. Learn to identify who you need on your side, and who's toes you can afford to step on.

If you can make it work there, you'll be a champ anywhere else.

  1. Use your time wisely.

You finished 2 week's worth of work in 6 days? Great. No need to trumpet that, and make everyone else bitter. Instead, start going through Udemy courses, and pick up new technologies. Or maybe work on a side project.

This way, when you'll be ready to leave, you're going to have a lot more experience, knowledge, and skills under your belt than anyone else in the department, and your resume is going to shine.

If you can learn to ignore the major issues, and let that stress and incompetence wash over you, you can milk this opportunity for all its worth. In a year's time, if the economy is still standing, there's no threats on the horizon, and you have opportunities, leave.

| improve this answer | |
  • +1 for "Use your time wisely". You have time to learn new skills, so use it. – Peter M. - stands for Monica Jan 30 at 14:21
  • Given the current economic situation, I remembered this answer. I hope OP stayed. – Matthew Gaiser Mar 29 at 22:12
3

Is this normal for software development? Is it representative of your experiences?

No, in my 10+ years in this industry I haven't seen such combination. You might occasionally see one of such points (huge red flag) here and there but never a full package.

If it is not, then what can I do for my market value in the next few months

From you comment it looks like you are dealing with decent technologies. Try to master it as much as you can. In addition to that try to create a good reputation for yourself in the company you work: try to always get things done in a good way. Find user groups/meetups/conferences in your area and make a connections. Try to find people you can learn from or the ones that have common interests and connect with them.

| improve this answer | |
3

Don't worry about how it looks on your CV. Moving into a better job with no gap isn't a red flag to a good company. Similarly if the start-up runs out of cash in 6 months, it's easy to explain. What worries recruiters is leaving multiple jobs for no clear reason.

A friend offered me a spot with her startup

That sounds like a great opportunity, but find out how long they can survive before they start making money. Also make sure you've got enough saved up to cope with at least 3 months without pay.

When a start up fails, you'll probably just get to the end of the month and then find out that some investment they were hoping for didn't happen, and they can't pay you. You may even have a couple of months where they ask you to take reduced pay to keep the company afloat. Even a fast job hunt may take a month if they book your first interview in a week, then wait 2 weeks for the second and a start date the week after. Then you might have to wait until the end of the month to get paid.

They should compensate you for taking this risk, so ask for an above average rate or a small stake in the company.

| improve this answer | |
2

Opinion of a semi retired guy who has been a software architect in 2 large IT companies and had to find a job in recessions twice: what you are describing is a place that will make you crazy or stupid if you stay too long. Do you want to become like your manager in a few years? Life is very short and time is your most valuable asset. You don't want to waste it in a place where you feel frustrated every day. If you have technical skills, are ready to learn and to move, you shouldn't have any issue to find something better. Moreover, staying too long in a notoriously bad place is not good in a resume. Some exceptions: in case of bad health, heavy debt or strong aversion to risk, a government agency is a safe place.

| improve this answer | |
1

Is this normal for software development?

It's hard to say what is "normal" in tech have I seen and worked in companies with some of these traits, yes! In terms of you hating your job well that's a more difficult problem to address. I would try to address that

Is it representative of your experiences?

I've worked with cheap companies, some of these companies even had huge stacks of money (millions) but were not willing to give me some extra RAM in my machine or buy me a new chair as the old one was broken. The temp contracts seems like a government thing I've heard this in the UK with government tech jobs. The slow pace actually seems normal I would relook at your work and check it over properly sounds like you might be rushing your work.

All in all though I would say altogether this is a shitshow but that's government work for you.

If it is not, then what can I do for my market value in the next few months (I'll stick around until at least March to avoid seeming like a job hopper).to exit effectively? I have a good engineering degree from a top Canadian university, good grades, a pile of hackathon awards (and can get more if they are useful), have a decent project to show off (my friend's tech startup website), etc. I have an ok StackOverflow profile too if that is worth anything (2000-3000 points and 150ish answers).

I would treat this as a learning experience in life you don't always get what you want and sometimes you just have to suck it up. With that said keep your eye out for another job as a short stint at a company will just be another talking point on your CV/Resume and you can say that you were the top performer and they weren't willing to acknowledge your achievements.

I would look inwards for the answer though don't expect the world to change for you. Maybe you're seeking perfection from an imperfect world.

| improve this answer | |
0

This isn't incompetence, it's short budgets. Your department has unmet needs. Managers with short budgets get really cranky when you ask them to spend money they don't have to pay for stuff that's obviously required. They take it personally, because they're forced by circumstance to say "no" to good suggestions. They may think of it as saying "sorry, we can't afford to send you to university" to a daughter or son. It's horrible for managers to say no.

You don't have to take it personally just because they do.

Take your manager's side: ask about the process of setting a budget for the department. I'm sure he'll be happy to bend your ear about how horrible it is.

Then offer to help, "if there's anything at all I can do to help you prepare your request for the next budget cycle, please let me know." Having the budget pen in your hand, if only for a moment, is your best bet to improve the situation.

And think about what you're learning about people and tools and getting things done in these circumstances. Once you see past the frustration, you are learning a lot.

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .