Right now, my daily rule of thumb is to try to have my butt in the seat for ~8 hours. I clock out at 6 and stay disciplined so I don't end up overworking as many remoters do. The main disadvantage of this strategy is that it just doesn't align with the reality of the job. Some days I work on something complex and want to work more hours, while others I'll knock out a few small things and want to call it early.
Strategies I'd like to use but can't:
- Show up and leave with my coworkers. We're a remote team, and have a few serious workaholics on the team (not to mention the issue of timezones).
- Leave when I've done my tasks. This might work if we had actual sprints. Our reality is an endless stream bugs and features for us to work on before we launch our product, and we just grab tickets as they come. Hopefully this improves after launch.
What do you do? I want to do enough work to feel good about myself, without burning out. I have very little supervision from management, my coworkers seem to respect and like me, and I am generally productive. Help me, HN.
If you have full flexibility, I’d suggest aiming to hit 40 hours on a weekly basis rather than 8 on a daily basis. That gives you the flexibility to work, say, 10 hours one day because you’re really on a roll, and to stop at 6 hours the next afternoon when you’re tired and distracted without feeling guilty.
Don’t go over 40 hours on a regular basis. That’s a recipe for burnout. A week of crunch time every 3 months is one thing. But regular 50-hour weeks aren’t sustainable for most people.
I’d also suggest setting goals in the morning for what you want to accomplish in a day. Put down your work when you reach the goal, unless you’ve got several more hours in the day. In that case, set another goal for the remaining hours. If it becomes clear that you won’t reach your goal within a reasonable number of hours for the day, put your work down whenever you hit a stopping point close to the time you’d planned to wrap up for the day.
More experience should help you make increasingly accurate estimates of what you can accomplish in a day, so you’ll hone this process as time passes. Plus it’s great practice at estimating, which is a difficult and valuable skill.
It’s unusual to hire junior engineers fully remote in part for this reason: more experience in a “typical” work environment give you more context for these sorts of judgement calls.
It's not how many hours you work, it's how much of your experience involves despair, frustration, and resentment. That might either be towards your employer ("stupid schedules, I'm not valued"), towards yourself ("this should be easy but I'm failing"), or towards the universe for simply not being the way it "should" be.
I think this is an exceptional answer. I’ve been working as a contractor recently where I am hard capped at 40 hours a week and it’s been wonderful. Work 12 hours one day when I’m in the zone and don’t even think about stopping? Sweet, that’s 4 hours off my Friday afternoon. Can’t concentrate today? That’s fine, I’ll put in some extra time tomorrow.
That’s a major change from my previous position where I felt like I never had a “not at work” mode and there was always more I could do.
I think capping yourself on a weekly basis is valuable because it gives you flexibility on a day-to-day basis while retaining a regular cadence.
Which caused stress and eventually a burnout that I am only just slowly getting out of, after about 5 months.
I suppose it is different for each person though.
Work should be focused on productivity, not hours spent. Employers, clients and managers have expectations of a quantity of work being accomplished for a specific budget, and it doesn't matter to them if its done in 2hrs or 200hrs.
You're assuming every project is fixed-scope, fixed-cost and variable-time. In my experience that matches a small minority of projects.
1. Start the day with a plan (15 to 30 min)
2. List things that, absolutely, need to be completed
3. List things that would be great if can be completed (bonus)
4. Have a set time when you are going to finish work. For me, 6pm. So when 3 or 4pm hits and I still have 1 or 2 things from my list #2 above, I get on it right away. That also helps me to stay on track whenever I am in meeting or unexpected phone call etc. Excuse myself or end the call quick so that I can get back on track.
It sounds very simple but it has helped me feel accomplished when I end my day at 6pm. Feeling accomplished for the day is very important for me. I usually hit the gym at 7pm and if I don't feel accomplished, I end up having a sucky gym time. A good gym time, run or outdoor activity, helps to set the tone for the rest of the night. If I am working on a side project, I usually start working again around 10am and stay up until 12 or 1am latest. Rinse repeat until Friday.
So MY short answer to "How do you decide when you've done enough work for the day?" = When you feel "accomplished" for the day :)
This year I started a business which means I work full time from home (or a nearby coffee shop), because my co-founder is in a different city and timezone.
While I've worked part-time remote and on distributed teams before, the lack of structure from being your own boss has been a huge change. A blessing and a curse to be sure.
When I start the day without a plan, even if I "get lots of things done", I feel stressed all day and am almost certainly not effective.
Having said that, I almost never get started before midday, and often it's only in the early afternoon or sometimes even the evenings after a lot of online procrastination. I have some days when I'm extremely productive, and others where I really just can't get into the zone to do much of anything at all. In the latter case I'll just write the day off and try to make something of it in terms of relaxing. I make no distinction between weekdays and weekends, so I'll just work whenever I'm in a productive mood.
I'm also a remote worker; my client is on the other side of the world, and I bill by the day. So I have a high degree of freedom over which hours I work, and to a certain extent, the amount of days I work each month.
Butts in seats and meeting a quota of 8 hours a day is entirely pointless, and serves neither you nor your employer. The only things that matter are, in order: 1) your health & work/life balance, 2) the value you bring to your employer.
Obviously if your estimate is devoid of any hourly numbers, this conversation is moot.
Have you checked your sleep pattern when this happens? I have noticed if I did not get enough sleep (Because I was in a flow or anything else), it will catch up with me the next day. Can't concentrate no matter what until I get some rest again.
In the meantime, you can:
* Try to incrementally improve. Keep a daily log (wish I had started this my first year), write down your stupid mistakes, false starts, other things. Re-read entries sometimes. Try not to make the same mistake twice and to be doing more complex tasks over time.
* Do the "butt in seat" thing without beating yourself up. A good one is to try to work ~40h a week (even 35), except if you can see an immediate career benefit not to by working the extra hours on a side project or stretch assignment. It doesn't have to be 8 hours every day it can be 12 on one day then 4 the next. Log your hours (remote people should always do this) and note patterns. For example, if you are consistently working less than 40h, try working harder, more than 40h, reconsider your approach or appeal to your manager.
* Ask for feedback. You can set up a meeting with someone (for example lead, manager or just someone more senior you work with) and ask "what do you think I should do to be more useful to the project?". Alternately you can wait until a more social occasion or a lull when working 1:1 with someone and just ask "so how do you think the project is going?" If they think you have a time management issue, they'll tell you, if not, you're good. Side note, you may hear stuff like work on your soft skills, have better work life balance. It doesn't strictly mean "work less" but it means your coworkers think you're too focused on individual achievement.
Once you get to senior, your job prospects will reflect how quickly you got there - the quicker, the better opportunities you get, which has a cascading effect on your entire career.
I have seen junior devs fall into the trap of taking the job for granted, and run into trouble searching for new jobs - you don’t want to be that person.
This is a very nice trick, and one that's less likely to happen by accident if you set your own hours.
There's a huge amount of variability between developers, so don't think that the "workaholics" doing 50+ hour weeks are necessarily being more productive than you; unless you actually compare, they could really be struggling and just trying their hardest to keep up with everyone else. In the past, I've solved problems in minutes that someone else on the team had spent many long-houred weeks and eventually given up on.
Be prepared to either let go of whatever plans you have made, or to stash them in actionable form in longer-term storage for a rainy day, in the event that you start work the next morning and are thrust into reactive triage mode. It can be immensely frustrating if you are anticipating and have expended mental energy planning tasks A, B and C, and attempt to juggle completing them with surprise Sev 1 priority tasks X, Y and Z.
This can help short-circuit some obsessive "just one more X" behaviors in night-owls, and makes it easier to get back into the groove the next day.
- I do track my progress on key long term objectives. If I'm getting behind I need to know, and burn the candle at both ends until I catch up. This should be rare.
- I try to set a daily goal or two of stuff to get done to make sure I stay focused on something productive and don't get distracted with yak-shaving or non-work.
- I stop hourly-ish and assess what I've achieved in the last hour. Sometimes I'm just not getting anything done and I'm better off calling it a day to get some real rest and diversion.
For me and few it of my coworkers it definitely were our children. I know I want to be at home by 18:00, so that I can have dinner with my family. One colleague was starting at 7:00 and and finished by 15:00, because he was pisking up his kid from preschool at 15:30 most days :)
I am not suggesting for you to get a kid :P but knowing that every day I want to end by $HOUR because I have a $THING does wonders :-)
Some scenarios with my approach:
1) No flexibility, chair sitting required from 9 to 5.
With paid overtime, I would be there for 8 hours and never 10 minutes longer, unless the project was ending in two days and was not finished or the production was burning down.
Without paid overtime, I would be there for 8 hours and consider staying a little longer if production is burning down.
2) Flexible (meaning it does not matter if you work from 8 to 4 while skipping lunch, 10 to 6 or you don't show up at all - this is my situation now).
I will still track my time down to a minute. The overtime rules stay (unless I am really having fun with something and know I will get paid 150% of hourly for it). As for daily hours - usually I will work longer hours whenever required (within reason), at least at the beginning of the month.
Since my hours are flexible and I know exactly how long I have worked so far, I can easily stay there for 9-10 hours one week and leave after 6-7 hours the next, depending on the workload / situation.
I have noticed that some people, unless they are contractors with billable hours, look down on tracking your time or "punch clocks" as if it is beneath them. For me personally, it brings me the peace of mind. I don't have to ever debate myself whether I am working too much or too little since I have the exact numbers.
- Start the day by making a list of tasks you can do that day. You don't need to finish them all, but there should be no moment that you don't know quite what you could pick up. - Then work using the Pomodoro technique: alternate 25 minutes of work with a 5-minute break, and every fourth break is 15 minutes. In those 25-minute sessions, do not e.g. check Hacker News, and in the 5-minute sessions, do not work. - My day was done when I finished 12 "Pomodoro's", i.e. did six hours of productive work.
I was way more productive than I was when I had to go to the office, yet had more spare time. I guess that helps: if you can compare it to going into office, you feel less guilty for fewer hours butt-in-seat if you're getting more done.
Of course, things like meetings can complicate this.
> Hopefully this improves after launch.
It won't. It will improve after you or more likely someone more senior stands up and does something about it. Which requires buy-in. Which is much harder to get in a highly remote team IMO.
Or it will change when you find another job that already matches your criteria.
My advice to you: As a Junior, you should expect good mentorship and support from your more senior peers and your manager. So lean on this. Make sure that the expectations between you and your manager are clear. Ask your manager the productivity he expects you to have. What tasks are expected to be done either daily, weekly or in the sprint. Try to see also what other engineers of your level are accomplishing. Once this is a little more clear to you, then forget about hours, butt in seat, etc. Do those tasks and find the sweet spot. If the expectations take you 1hrs/day, take a little more work, because performing better than expectations will make you feel good and motivate you (and probably be good for your career). If it takes over, say, 4-6hrs/day, the expectations might be a little too much, or you might need to growth a bit more and learn how to be more productive.
With respect to work time and workload there's always an element of presentism - if "enough" surfaced activity happens over the course of each week and the work is not obviously deficient, then most managers won't ask questions. And you already know that much, since you had many years of school to get that idea in your head. And when it's on-site, it's simple to get to that level - if you're in the office, you're at work, even if it isn't time-on-task.
But there is always going to be a level beyond that, of taking on tasks that are a good combination of "builds up a career" and "builds up the company" - stuff where you can act more independently, and likewise fail independently. You can easily fall into work that does neither or only one of those things, or convince yourself into workaholic behavior and sacrifice everything else. Nobody can offer a clear bright line of "this is the best possible course of action". But there is a "better" out there somewhere!
So if you can measure yourself by whether you did something of both career and company and other life things each day, then you already have a more balanced self-measurement than "quantities of issues" or "lines of code" or "hours in seat".
I have a similar expecting from my employees.
These items are the detail, the standing orders still remain (answer phones, do meetings, email, etc)
It is ok to stay longer
It is ok to stay longer especially as a beginner. You are in a learning phase. But still need to do your stuff.
It is also ok to screw up or ask questions.
Never ever go every week over 50 hours. I have a junior right now which works longer because he sees us working long hours. I will tell him soon to suck it up and go home on time.
Then limit that to a rolling average of 40 hours per week, or whatever you like, and can negotiate with your employer.
I've mostly worked as a consultant, so there's been no limit, other than however close to 24 hours per day that I can handle. And sometimes, with rush jobs from multiple clients, I've just about maxed. But in that case, I've discounted work time, especially for clients who weren't pushing as hard.
I use the Franklin covey method of listing out tasks ranked by importance first. Most important have “A”s next to them, then “B”s and so on. Then rank the list by order, 1,2,3,etc.
List should look like this:
1A - most important fire drill task I need to get done today
2A - def have to do this too
3B - let’s do this after that
4B - blah blah blah
...
This will focus your efforts on being effective rather than efficient.
Then I intentionally detach myself from accomplishing everything on the list. There will be days when you can’t even get through task 1A so you really have to be able to cut yourself off and sleep on it. If you get too emotionally attached to completing the list you’ll experience dissatisfaction. Instead, choose to value other aspects of your life like the fact that you have flexibility, family time, good health, etc.
I'm very interested in how to define the "enough work for the day" question. Or we could just listen to Dan Reeder: https://www.youtube.com/watch?v=xNWhiXxdbWk
I love coding, and I would be coding if no one was paying me, but there’s more to life than just that.
Keep track of your progress and you should be able to get more of a feel for your own productivity (as well as getting better at estimating tasks).
At the beginning of my career I was probably less active but now I work better/fuller.
This article remindes me how I wanna be.
http://bookofhook.blogspot.de/2013/03/smart-guy-productivity...
So if I can't anymore for the day I take a break and continue later. Not sure when I had a time when it was just no longer possible but than I would just go home.
Also I don't read Reddit or hn when I work. Helps a lot to keep focus. And I try to work on something else for the company in break time like when a build is running.
At 4, I step out for a coffee, stroll around the block and grab a cookie. Then I come back to my table and reply to annoying emails and tackle the easy stuff till about 6-6:30.
I never start working on a tough problem after lunch, because if things go wrong, I end up working long hours and can't get it out of my head even when I go back home.
By the way, I'm really impressed that many people commenting here can work 6-10 hours at a stretch. I need to stretch every 45 minutes to 1 hour lol.
That said, I enjoyed most of my time there very much and often would be doing exploratory stuff that I might have done on my own time anyway, so sometimes I took some extra time to evaluate one more possibility and used some spare time. Other times I just did some private stuff only veeery distantly related to actual work stuff and chalked it up as "learning".
So yeah, probably not a really helpful answer. But if you're having fun and are learning a lot a few more hours won't hurt. If a fun evening of spare time does not include programming (which I guess is true for at least 50% of programmers) then don't put in extra time. I think I've mostly done "I have a guilty conscience if I leave a lot sooner" but I also try really hard to not slack off during my 8 hours and count them as working hours. And yes, if you have that "Today I achieved more in 6 hours than the whole last week" then absolutely stop working, it's probably true.
Protip: Optimize for consistent performance. It's better to close 3 tickets every day, than close 30 tickets on Monday and one or two every other day, even though the latter scenario adds up to more tickets.
(Obviously, replace "tickets" with your own measure of productivity.)
Two things about this:
- I think you should be careful of linking your work ethic to your self worth
- It would probably help if you had a more clearly defined goal.
Common healthy goals are:
- I want to be Tech Lead in X years
- I want to retire early at X
- I want to learn about technology X and work primarily with it, here or elsewhere
- I believe in what my company is doing and I want it to succeed
From that standpoint, you can start to tie your behavior to whether or not it helps you achieve your goals.
> I have very little supervision from management, my coworkers seem to respect and like me, and I am generally productive.
I think you should also examine this. Don't let others set your priorities for you. If your manager or company want you to work more than you're comfortable doing, find another job. If your coworkers don't respect you based upon how much or little you work, find another job. If you find yourself not being productive for reasons like "this is boring", "I don't believe in this", etc., find another job. Dealing with situations like that -- while not always avoidable -- is a short road to burnout.
If your motivation is about advancing in your career (getting noticed), then it's somewhat specific to your workplace.
What's it there that gets one promoted? Overwork? Yes-man? Report athletics? Plain year count?
Either way, being junior you need some feedback from your supervisor, both to show your progress and to gauge the expectations. There's probably a yearly review system in place, if not yet. So setting one own goals is a good way to prepare for a future review.
In a kind of 'conveyor' style of workflow where you just draw tasks from the stack it may be harder to see the larger project scope. But it's still there.
Your department/team may have commitments, e.g. to reduce the bug backlog, to deliver features for integration. Basically, it's business goals, larger than just a personal churn.
Once you understand how to contribute to the team value, you can decide about how much is your fair contribution.
I'm basically paid to be on-hand 9-5, so that's what I do. I don't check email outside work hours as a rule. If there's something technically interesting, or is important to do but cannot be done within the constraints of a business workday (basically, anything that involves deep thought, concentration, and sustained effort), I may choose to do it when that's convenient for me. And I know things; I remember, and I've been around long enough to know the whys and wherefores and sequences of events that led up to the present state of things.
It creates a reliable interruption, such that if it happens you're likely to be distracted enough that it isn't even worth trying to get back into serious work for 45 minutes before you need to go home.
It's also late in the day, so any tasks that come up must pass a high bar to be actually remembered and resolved. A task must either be so urgent that it is worked on immediately (and then people will resent the standup for making them stay late) or so important that it can be remembered the next day. This means a whole bunch of simple-to-fix issues are probably being ignored, either by forgetting or just not being raised in the first place.
I'm not surprised that the meeting often doesn't happen. A better time for a standup is before lunch or earlier in the morning.
First thing in the morning is not good, because it requires people get in in time, and so it becomes a gate on starting work if you are on time until the latest person arrives. Also kind of useless to do until the morning email triage is completed.
Midday doesn't work, I've found, because it is impossible to carve out a consistent time to meet. External sources always try to clutter up 10-2 with calls and meetings that involve herding cats and aligning schedules over which there is little control. Also tends to blow into lunch time and people get hangry and cranky.
End of the day at least serves as a terminus to the day, and since standups are mostly useless, skipping it to sneak out and play golf or whatever tends to be a common outcome.
The short answer for me is, I've done enough 'work' when my efficiency curve drops more than 15-20%.
After that though I relax my scanning the latest news, HN and other consistent sources of interesting and useful new information. Is this work? Actually I (as in the guy in my brain who uses it when I'm not) often comes up with work arounds for the local maximum I've often hit in my "real work". Things like a better way to structure some code, a better way to approach a system problem, all kinds of useful things pop up from time to time. Really it's a way of getting out of the rut.
I've come to view this as essential work though it seems like just goofing off.
Well the Brits have a saying for it. "Bed, bath and bus." That's often where inspiration strikes when you least expected.
1. we breakdown issues/bugs into 2 - 4 hour increments where we write test(s) to replicate. Then share with team. Hopefully there can be a fix in that time, else create a new issue.
2. we breakdown new tasks into 2 - 4 hour increments with a new function(ality) + necessary tests
Then we spend ~1 hour a day doing code reviews. Some days I can get through multiple issues, some days it's just 1. In either case, we can assume 5 - 8 tasks / issues a week are completed. How everyone does it is up to them; so that's how you decide how much work you need to do.
Unfortunately, estimating can be poor for these tasks, but that's why we time box it and require a team notification for any issues (plus tests). It works relatively well, and everyone checks for open PRs or code reviews between each task -- so blockers don't occur.
I recommend trying something like that.
1.) Keep log of worked hours. When you want to stay longer, whether because need or because it goes well, stay longer. Note additional hours. Take those hours back (work less) within next two days or so. That way you will not overwork your self and will still take advantage of continuous time chunks.
If you are organized person, you can also note how much was "focused effective" and how much "staring into it butt in seet". I did that in past and it was eye opening.
2.) Work every day exactly same schedule and live very regular life. This his frustrating and hard for most people. Anyway, after a while you will codition yourself to be focused at exactly those times even if you are working on something big.
Large disadvantage of 2 I'd that you will become overall less flexible person that way.
So, you already had the right hunch.
You don't really have a good direction on a random day and can't really get into the zone? Fix some small bugs for 2h and then call it quits, go to the gym, drink beer with your friends.
You got that one feature that you know exactly how you build it and you're on fire for it? Knock yourself out in a coding session of 2 x 20h and take 3 days off afterwards. Much bette than forcing yourself to quit at 6pm even though you're burning to do it.
Productivity means taking advantage of the human cycle, which is comprised of your mood, hormones, the characteristic of your problem and many more factors that you can't really control.
I have clients for whom I averaged 5-6 hours a day. They saw me come and go and were happy to pay me 40 hours. I have other clients who act like they cannot survive without me there 8+ hours a day. For them I get there at 7am and work till 5. Many days I leave still feeling like I didn’t get to accomplish everything I’d hoped.
There’s quite a bit of variety in expectations out there. You have to cross this river by feeling the stones.
If it is already end of day, it may be reasonable to start your next task tomorrow rather than spending time next morning trying to resume your work.
This has two functions:
1. Gives me something to jump-start my next day with; I'll be eager to finish my work, instead of dallying on Slack/email/GitHub.
2. Keeps me from overworking. It's easy to think you're "being productive" by pushing lots of code late at night, but at least for me, this is when my lowest quality work happens as my brain has started winding down. Save it for later!
Think what's your 1 day, 3day, 5 day, biweekly, monthly, quarterly, yearly, and 5 year goals for yourself, team, product and company. What unknowns may influence decisions or are strategies? What assumptions need to be confirmed? How often are we checking ourselves on our progress? When do we get to change our mind?Do these things and how much should you with in a day becomes very clear.
I recommend doing what you are doing until you feel like, "OK. I'm in a rhythm and things are going well." Perhaps you are already at that point.
Next, when you have one of those days where you are feeling good and want to continue, work an extra hour. Then play with how you are going to use that hour the next day. Will you start late, or leave early or have a long lunch, or whatever? Tell your coworkers that you're going to do it. "I worked late today, so I'm going to X tomorrow". This keeps them informed so that they don't panic if they are looking for your help the next day.
Evaluate the progress. Did it feel good to you? For example, starting late does not work for me. I'm a morning person and taking an hour or two off in the morning means that I will get started on my side projects... and never stop. Then I end up working my "day job" until midnight --- no good!
Also, evaluate the reaction on your team. Were they OK with your behaviour? Every team is different. It's important to try to work with the team and not just stubbornly go your own way. I've worked with people who have the attitude, "It's my right to do whatever I want. I'll come in at 2pm and leave at 4pm and make up the time when it suits me". I hate working with people like that because programming is a team sport and I have to accommodate your weird schedule.
I work time shifted by 9 hours from the rest of my team. I know it impacts them and I do whatever I can to help them -- including working late nights sometimes (even though I'm a morning person). But you do what you can. Some of my colleagues can't get up early in the morning, so I'm happy to accommodate them, just like they are happy to accommodate my choice to live on the other side of the world. There is a give and take there, and as long as you are aware of it (and not always taking), then I think it's fine.
Deciding whether or not to work late is always a judgement call. My advice is to consider 2 things.
1: Is it truly and emergency? The server is on fire and you are losing customers. Somebody needs to work on it. You should stay if at all possible. Even staying around to provide moral support for your colleagues can make a big difference. Sometimes there is nothing you can do, but if you hang around and read slack (or however you communicate) and make occasional comments, it can really help the team. Nothing is more lonely than sitting in front of a melting down server, not having a clue what to do and everybody has buggered off for beer.
Sometimes people say it's an emergency and it really isn't. In those cases, consider the cost of saying no. There will be a cost if someone asks (or hints strongly) for you to stay and you say no. It sucks. It's not what it should be. But it's very common. If you can afford to pay the price, then feel free to draw the boundary. If you can not, then do what you have to -- and then try to get yourself into a situation where you can afford to say no the next time.
2: If you just feel like working, then go for it. Keep in mind that this comes after you have established a "normal" working day for yourself and when you know how to take back the time later. But stopping yourself from having fun (even if it's making other people money) is just silly.
Always keep in mind your own health, though. When I was younger, I seemed to be able to work a lot of hours and still stay very energised. As I've gotten older, I can not longer do that. I have to pay attention to my energy level, because a 12 hour stint can wreck me for the next 2 days. That's no good for anyone.
Finally, I occasionally work a short day when I'm really not on the ball. Again, I confer with my colleagues before I make any decisions. People know I'm usually around between 9am and noon their time. Sometimes I need that time off and around 9am I say, "I'm not getting anything done today, so I'm thinking about packing it in for the day. Is there anything that somebody needs me to do before I go?" Sometimes there are lots of things, and I stay and do what I can -- which is good because that often makes me productive, when I wasn't before. But if there isn't anything pressing, I'll rest and be able to do a very productive day the next day. That kind of thing really depends on the team and the amount of trust everybody has in everybody else. It won't fly on some teams, but I work with a good team.
Add to that anything you feel passionate about-- things you'd learn for 'fun' and you should be fine. (For me, there are tasks that I'd do even if I weren't employed at the time. Those are the 'after hours' items.)
But seriously, you should have a metric of quality over quantity. If you work on a team or a highly collaborative environment, the Dynamics and the answer will change.
The challenge is to get your stuff done in that time period. IMO, if you’re working more than you are paid to work, you’re a sucker. Direct your passion elsewhere.
It helps that the current project is iOS and there’s a dearth of qualified iOS devs here. If it was some generic service work, we probably wouldn’t have had much leverage. Crazy way to start my career!
First thing to do is to make sure you’re working well in those hours. Don’t try to compensate for procrastination by sitting there longer. On the vast majority of days I will literally not do anything other than work when at my machine. Quitting social media massively helps, or at least logging out on your work machine and vowing never to log in. Delete the apps on your phone, or keep your phone in another room or powered down. Have two phones if you really need one to make/receive calls during the day.
You’ll have days when you’ve done less than you want. It’s tempting to work extra hours to compensate, but instead you should say “right, I screwed up by procrastinating today or making a bad call on proceeding down that problematic road to achieve X that soaked up a lot of hours, but tomorrow I’ll have another go and get it right.” Go to bed, try again.
The most important thing to learn is how to decide what to do. This is far more important than the number of hours, or your skill level. A great programmer writing the wrong code has zero productivity. This is the most important advice for getting things done: deciding what to do. Sam Altman said something along these lines recently, he’s bang on.
At this stage you’re junior and won’t be as productive as others. So you’ll want to work some extra hours if you’re ambitious. If you’re keen, I’d recommend working Saturday rather than more hours in the evening. It’s less stressful and you’ll get more done, particularly if no one is contacting you. And a Saturday day can be more relaxed, maybe you want to socialise and you just do half a day, maybe you work on a laptop in bed or in a cafe for a change, you’re the boss that day.
You need to skill up, technically and managerially/organisation-wise. One method is to devote an extra hour a day to learning some tech skills. For example, you have a git problem that costs you an hour. Write on your todo list - learn git - and that evening (or whenever you invest a few extra hours) you study git, make a cheat sheet. That investment begins to accrue. Other things you might consider: mastering IDEs or emacs, build tools, testing, dev methodologies, languages etc. An hour spent googling and reading blogs, stack overflow, watching screencasts, without any pressure to get other work done is remarkably constructive.
So the todo list: you need to learn to organise yourself. This will up your productivity and reduce the need for long hours. Read a few books: Getting Things Done, Rework, The Now Habit. These soft skills are so very, very, crucial.
Finally: take care of yourself. Junior devs tend to have more of a social life, and it’s important to enjoy yourself. But be aware of and invest in all these things: exercise, diet (minimise caffeine, sugary drinks/snacks), relaxation time, and more than anything: sleep. Sleep. Sleep. Cannot emphasise enough. If you’re going out late one day, that’s fine, but try to sandwich it with good nights of sleep either side.
This might sound like a productivity guide rather than answering your question, but essentially I’m answering a related question: how can you spend your time well so that you don’t need to work 12 hours a day, but get enough done and still enjoy your life?
There will times you have to break any routine or hours limit you have. In which case, that’s fine, but as soon as that period is over: have a rest, make a firebreak over a long weekend, then do a reset and get back into that routine.
The most important thing to learn is how to decide what to do. This is far more important than the number of hours, or your skill level. A great programmer writing the wrong code has zero productivity. This is the most important advice for getting things done: deciding what to do. Sam Altman said something along these lines recently, he’s bang on.
This is strong advice - I’m saving this to refer to later. Thank you. This whole post is great, and you were insightful to see the real question I was asking, and answer it. =)Burn out? You are in your mid 20ies, if you can’t put in long hours and hard work now you won’t be able to do it later in life trust me.
It really comes down to how industrious and conscientious you are rather then how smart and happy you are.
If you’re a hard worker and know your job well you will make it on any job, even the ones with shitty management. If the managers are unbearable leave - you are lucky to be in the industry where if you’re any good you can land a job in a day. Most people don’t have this luxury, work very long hours in completely shitty jobs (think cleaning toilets) and never burn out and lead happy life.
It’s basically down to your personality and what you value in life, nobody else but you can really tell you what’s best for you.
I get it that industriousness and conscientiousness are important, but I disagree that "it" (whatever "it" is) comes down to those rather than being happy.
(I also disagree that being smart or working smart is less important, although it's true that just being smart without any of the former two doesn't allow one to accomplish much. Of course if you value the idea of being busy and doing a lot as an end in itself, that's another story.)
If your economical circumstances, the surrounding society or other realities dictate that you have to be particularly industrious in order to survive and to meet your basic needs, wants and goals, it makes sense to have that as your central value. But if you're already getting what you need, why on Earth would industriousness rule over happiness or satisfaction?
I guess this is pretty much a matter of values, and if you get that satisfaction from being and feeling industrious, that kind of answers the question. But if you don't, it doesn't make much sense -- in that case the former is just a means to the end.
> Most people don’t have this luxury, work very long hours in completely shitty jobs (think cleaning toilets) and never burn out and lead happy life.
Well, you can kind of toil away in a non-thinking job, and if it suits your personality, that's fine. It can still be exhausting particularly if you need to do it in a hurry, but I wouldn't expect you to burn out if you can keep doing pretty much the same thing every day and it suits you.
However, I think a lot of people on HN are the kinds of people who get satisfaction from more than just getting their basic job done, and the ability to be creative and to maintain the kinds of cognitive abilities required e.g. for tech jobs does actually require a balance, at least for most people.
But yeah, it's a matter of values in a sense I guess. Doing what fits your values gives satisfaction.
Question is why is everyone so obsessed with work life balance?
I come from 3rd world country and I never heard of that concept before I moved to some European countries.
I used to work anywhere from 6-16 hours a day and even night, I never complained and always did my job as best as I could, so not sure why is that viewed as horrible, and I feel the only reason people think about this is cos it’s easy to find a job in this profession, I don’t see people working in Mcdonalds or stock traders talking about it.
I’m sorry if you don’t share that point of view.
As for why work life balance is seen as something to be strived for, there might be several reasons.
Most workers here are thought workers, which means productivity is incredibly hard to measure. Along with this, the general consensus seems to be that we have limited number of hours of true productivity per day with this sort of work. (Idk if the science is there to back it up, but it is the consensus). So by this logic working 70 hour weeks has a cost.
Another reason is that an hour at work takes an hour from society as a whole. Another hour at work is an hour not being a husband, not raising kids, not spending money at bars with friends, not shopping (to the benfit of the economy) not cooking or other hobbies which develop well rounded citizens.
Also maybe to the larger point, why? Why give your life (50hpw+ consistently) to an employer if it's not needed and you don't love it? There is a whole world out there and you already give an majority size chunk of you life to work and sleep, what are you going to do with the rest?