Typical day for a junior software dev
September 9, 2020 4:34 PM   Subscribe

I’ve been an entry level dev for a couple years, finally recently promoted (but still junior). What “should” my day look like?

This is my first professional job. I am used to jobs that assume you should be working fairly consistently at similar tasks for eight hours a day. Now I am working at a big tech company (not start up). Good work/life balance. What should my typical day look like? How much do you “get done”? Do you split up your day into chunks of work?

In general I have a constant “stressed out” feeling, because I assume if I’m not stressed, I’m not working hard enough. (Partially imposter syndrome, partially good old American work ethic.) But it’s starting to get to me and I’d prefer to manage my workday in terms of reasonable objective milestones rather than personal feelings.

I know things are different for everyone, I’m just... losing my mind with the pandemic, wildfires and heatwaves and would love a bit of grounding. For the first time, I really failing to meet my own personal standards (for health/stress/apocalypse reasons) and would like a reality check about what is normal, even if I can’t meet that right now.

I’m doing well, not a superstar but I get good performance reviews. So I’m not worried about “catching up,” more about getting a sense of normalcy so I can check my creeping feelings of guilt and remorse when I try to pace myself.

If I decide to just be “in the zone,” programming and debugging in a state of hyperfocus for 6-8 hours a day I feel like my hair will fall out. I doubt that is sustainable for most people without sort of cyclical breaks or change in focus? But I have no idea. I’m starting to get more to the stage of not doing all the nitty gritty and needing to delegate and all that. So managing my time is becoming more nebulous when I can’t just say “submitted that code, squashed that bug,” etc.
posted by stoneandstar to Work & Money (10 answers total) 18 users marked this as a favorite
 
Best answer: Hi, I'm a senior developer, and am now the lead developer of our companies largest customer facing application. I have been doing this for about 25 years now, and I still spend a lot of time on imposter syndrome brain problems For me, the big secret is to split out tasks into smaller items - so my day ends up looking like:

* Spend an hour implementing enough of a thing to test
* Get up, have a coffee, think about what i'm going to do next and generally don't be coding for 15 minutes
* Talk to at least one co-worker about the direction things are moving <> * Repeat 4 times per day

If you or your job are into receipts (I/mine are not so much....), you can update your ticket system with progress and so on after you've got testable stuff. But there is a reason that most of the new hotness frameworks (agile being the biggest one in this manner) emphasize splitting things into bite sized chunks - because that's a big way you protect your sanity. Even if you're coding a big thing (I'm actually doing a new DSL for our product right now, which is a multi-month exercise), you can keep yourself sane through this kind of rapid iterative prototyping approach, since (a) you can see that you're doing work! (b) you don't have to spend half of your time proving (a) and (c) it leads to regular breaks for your brain to refocus, which I've found is the biggest trap in our industry.

My wife will assure you that, when she sees me in an office, that it does look to her like I'm not doing work a lot - but you have to remember that we're in the field of knowledge work, and brain time is working time!

I have two parables about this. First up, there is an old story about a mainframe technician, who was called out of retirement to fix a broken mainframe - so he said he'd do it for $100k. He kicks it, it whirrs back into life. They ask for him an itemized bill, saying that this is ridiculous - so he writes one. $2 - kick the mainframe. $99,998 - knowing where to kick the mainframe.

Second up, I firmly believe that the art of software development is not writing code today, but rather waging a struggle against yourself today, in favour of yourself in six months time. That is to say, an hour of thought about the future now can save you months or even years of wasted effort in the future. That hour having a coffee thinking about design? That is absolutely valuable work - almost anyone can pick up a book and bang out some code, the true skill is doing that in such a way that you don't paint yourself into a corner. That time that looks like you're not working? That's often _the most important work_.

Also: I've been working from home for 4.5 years now, and for 3.5 of those years I had no problems. Even seasoned WFHers are being driven to insanity by the current level of chaos - please don't judge yourself harshly for struggling with it, it's honestly all of us. In my team (admittedly only 7 of us) there is not a single person who isn't struggling, from the newest guy promoted from testing all the way to the two graybeards in their 40s and 50s. It's honestly not fair to pass judgement on yourself in 2020, and I think more people understand that than you'd expect.
posted by jaymzjulian at 5:09 PM on September 9, 2020 [13 favorites]


The Big Tech firm I'm most familiar with has quite a lot of information on exactly this topic scattered across the internal network -- like entire classes, recorded talks, slide sets, extended essays, and so on. I mean, for literally every level of the company there's extensive information on what you should generally be doing at that level, the expectations of those above you as well as below you, along with notes about other sources of information on the topic.

...soooo, my apologies if I'm being terribly obvious, but check there first, and ask on any internal mailing lists if you don't know where to look?

Second up, I firmly believe that the art of software development is not writing code today, but rather waging a struggle against yourself today, in favour of yourself in six months time.

...and also this. A lot of this.
posted by aramaic at 5:12 PM on September 9, 2020


Best answer: I will also mention: the day I left the startup scene, and moved into more traditional organizations (manufacturing first, then banking) honestly is the best thing I ever did for my life. Going from a life of "everything must be work" to being surrounded by people for whom that was not the case changed my life dramatically for the better - my brain originally fought it, and I hear myself in contractor hotshots who come in complaining about all of the complacent people "only" working 8 hours a day, but you know what? For most of us, that's not sustainable. Not doing that is absolutely a good thing.

Places that demand visible hard work are a poison on most humans life. You should be proud that you've found somewhere that values you and your time enough for having a work-life balance to be okay, not ashamed that you're not working hard enough. Most larger companies actually actively don't want to burn our their white collar people - hiring is really difficult, and your company appears to recognize that you are not just a replaceable cog - they're telling you directly that you're fine via the good performance reviews!

Sometimes, the hardest thing to do is believe people when they tell you what they expect of you. And it sounds like they're sending you the message that you're doing fine!
posted by jaymzjulian at 5:21 PM on September 9, 2020 [9 favorites]


I get to spend about 4-6 hours max on work tasks each day (on average) due to meetings. I hate meetings.

But a lot of the work isn't writing code - it's chasing down people from other teams, chasing down reviews, giving people updates or getting feedback, reviewing the occasional PR, writing presentations or docs, looking stuff up, thinking about or researching the best way to solve a problem, and so on.

My day looks a lot like jaymzjulian's.

I've had all sorts of jobs. I've been an admin, an email marketer, a computer repair person, a smoothie maker, a cashier, a receptionist, and so on. My current job pays the most and is the least stressful and physically demanding job I've ever had. I feel like I'm cheating most days. Maybe that's what's going on with you?

I can tell you that the software engineer who sat next to me before lockdown used to spend a lot of time on Facebook, and still got good reviews. So did the marketer I sat next to a previous job. White collar jobs don't always have the same go-go-go expectations. You're expected to take breaks and not be a stress machine all the time.

Especially now, with everything that's going on. Take care of youself.
posted by marfa, texas at 5:21 PM on September 9, 2020


This is incredibly dependent on what your company culture is like. Look at other devs in your position. If someone has your title but has been there for 10 years YOU ARE NOT THEM. I would ask them advice but they might be so far removed from what they think someone new to the position should be doing they might have be unintentionally jaded and give you salty advice.

Look for other peers who have recently been promoted. In general, don't change anything unless you're asked to. Keep your eye open for advancement opportunity! Did a great job on something and someone asks you to stay late to help on another item? Is that person especially a higher up or is that something you're staying late for with someone senior? Take it, don't complain. Don't think I just put in two 10 hour days why should I now help with this. That could be your golden opportunity.

Conversely, don't let people abuse you. If you find yourself consistently putting in overtime because you're doing nothing but meetings, it is okay to turn things down. You have a two hours free on a Friday? Okay spend it on thought leadership, not thinking you can smash two bugs but your mind is zapped because you've been in 6 hours worth of meetings. The key to working successfully is working smart, which sounds cliche but it is true. You don't need to be 100% productive all the time as long as you're productive when it counts.

As someone who was used to coming into meetings and saying "I hit my sprint goals! Knocked out all the bugs!" moving to something that didn't havce such definite progress was difficult. I find collecting what I did important, in a diary of sorts, and then don't be afraid of promoting yourself because no one else will.
posted by geoff. at 5:34 PM on September 9, 2020


Best answer: I'm a data scientist and in my last two roles it has been incredibly hard to break 50% of the hours going toward productive heads down work that shows up in a ticket no matter how I try to increase that to 60-70%. That's because meetings eat 15-20+% depending on the company and product lifecycle stage of the thing I'm working on at any moment, 5% at least to Slack discussion (not idle chatter but talking about work, answering ad hoc questions), and the rest to mentoring, admin, and random interruption with several minutes of unrecoverable switch cost eats the rest. I think this is pretty typical, experience comes from startups to mid size places.

I also find the number of hours my brain can actually do my work to any level of quality is pretty intrinsically limited; sure, I would love the Slack interruptions to mostly go away and people to actually pay attention to the "do not disturb", but if they did, I would still not be able to crank out 6-8 hours a day of coding and stats and prototyping. Sure, I get in the zone sometimes and do that, but could not keep it up, day in, day out, ymmv but this is a well-studied thing in psychological literature that humans are only good for so much cognitive work in a day before it all melts down.

What you need to do is figure out when your in-the-zone time is, and do whatever you can to maximize that. For me and many others, 2 uninterrupted hours at the right time of day is worth much more than 4 broken-up 30 min chunks. Plan accordingly and if you have a good relationship with your boss, let them know if they can help facilitate this. Knocking out that 2 hours of really productive time usually makes me feel ok about whatever happens after that for the day because I moved forward enough to not feel too stressed even if the rest is lost to Slack.
posted by slow graffiti at 6:47 PM on September 9, 2020 [2 favorites]


Not a software dev but I am a junior data engineer: my day is mostly balanced between developing, researching, meetings with coworkers and other teams. I take about 15 minutes each hour to walk around and clear my brain. Honestly I maybe get 2 hours of actual hard coding done a day but as long as I meet my project deadlines no one seems to care.
posted by Young Kullervo at 7:36 PM on September 9, 2020


I used to be you and I am now the guy who has to tell the board how much development work we can do in the next year. I am extremely keen that developers are working at a sustainable pace and don't feel under constant pressure to do the maximum possible every day. Why? Mainly because I remember what it was like being a developer and what working in an environment like that feels like, but also because I know we will hit unexpected problems and crunch points where we will need people to do a bit more for a limited period. There has to be something we can draw on as a team at that point and that means not trying to work people into the ground all the time.
TL;DR - don't feel guilty about not being hyper-focused every day. That's not sustainable and good managers should recognise that.
posted by crocomancer at 1:41 AM on September 10, 2020


Senior dev here -- I usually try to accomplish 1-2 "big" things a day -- something like "write a chunk of testable code" (but not necessarily test and perfect it) or "design that piece of software." If I actually finish one of them, that's a pretty satisfactory day, and if I finish both, I feel like I smashed it. That probably eats up 1/3 to 1/2 of my day. Another 1/3 to 1/2 of my day is spent in meetings, or answering email, or helping teammates with whatever they're working on. And the remaining 1/3 (if I have it) is spent chatting with coworkers, browsing the internet, otherwise recharging, and accomplishing smaller tasks (project tracking stuff, maybe a quick bug fix, other administrative stuff).

And some days I spin my wheels on one stupid thing for the whole day, accomplish nothing, and feel like crap. And then I come in the next morning and magically have everything working within an hour. Like everyone else has said, we can't sustain that level of mental effort for 6-8 hours, and it's often counter-productive to try.

Similar to crocomancer, my boss has often told me that he'd rather have an engineer that does X amount of work in 6-8 hours than somebody who regularly works 12 hours to produce 1-1.5x, because when the shit hits the fan, the 6-8 hour engineer still has something left in the tank.
posted by natabat at 7:32 AM on September 10, 2020


Best answer: I'm intermediate, but if I spend 1 - 2 hours coding and 1 - 2 hours debugging, testing and fixing said code, I am happy with myself. When I come upon a big problem I'm stuck on, it seems to work itself out overnight in my sleep - so unless there was a big rush, there's no point in pushing myself really hard to knock it out when I'll have it figured out in 10 minutes the next morning. I must be doing fine because I get my work done in a reasonable timeframe.

That said, there are days when I don't even get anything done. Like today, I'm just doing some promotions and waiting on other people. I don't feel badly about that either. I'll be able to rise to the occasion if needed.
posted by kitcat at 1:15 PM on September 10, 2020


« Older Packaged Breakfast/Lunch/Snack Food for Kids   |   What does tax-back rate mean exactly? Newer »
This thread is closed to new comments.