Ask HN: What's your working day like?
I'm curious about the details of the usual working day for different professions/positions (not necessary technical).
Examples of professions/positions: UI Designer, CEO, Sales, CTO, Welder, Trader (online/offline), Recruiter, System developer/administrator, Web developer, Civil Engineer, Quality Assurance Engineer, Teacher, Professor, Astronaut... Anything.
I'll start:
Profession/position: Web developer - full time, remote - <50 employees organization.
Workday:
- Wake up & prepare myself.
- Join a 10~15min call with my team (3 Developers, 1 Manager, 1 Designer).
- Start working on assigned issues, usually for 1~4hours.
- Catching up with emails/team conversations.
- Reviewing other developers patches.
- Repeat until calling it a day, usually 7~8 hours with 1 hour break.
442 comments
[ 3.3 ms ] story [ 347 ms ] threadUnfortunately I live in a climate where the weather is subjectively "bad" 8 months out of the year, so on one hand I'm not "out there" most of the time, but on the other hand when the weather is unusually good I certainly am out there all day sometimes. Sort of like is the glass half empty or half full argument?
My open office is really, really open. It can be distracting when deer or raccoon wants my lunch. Raccoons are kinda scary, they are alpha scavengers and they know the local gun laws as well as a hunter or police.
Strange but true facts: I travel everywhere with trash bags because I need a way to get my gear home dry when there's a downpour. Also I dress up to go to the park, so rangers won't think I'm homeless.
- Awake at 7:00 am
- 8:30 am - on the train
- 9:30 am - at the office. Start working on my projects, join any meetings about any existing or new projects that affect me.
- 4:12 pm - leave work
- 4:30 pm - on the train back home
- 5:30 pm - home working side projects, work work, or trying to unwind.
Weekdays, wake up 6:45am. Shower, shave every other day. Take dogs outside. Have breakfast. Drive 25 minutes to work, make sure to be there before everyone else (guaranteed if before 8:30am).
Read HN, LinkedIn, check email. Browse through development items, get stuff done. Have salad for lunch. Some more browsing and some more working.
Leave 4:30pm. Drive ~30 minutes back home.
Get home, have dinner, get ready for other work. The really interesting work, from 6:30pm to 11:30pm-midnight.
Weekends - do more of that really interesting work. At least 8 hours both Saturday and Sunday.
Workday:
- [6:30 am] Wake up and get the kids ready (I try and let my wife sleep-in since she has likely been up several times during the night tending to our infant son)
- [8:00-8:15] Get to work, check Email/Slack
- Write Code
- Mid-morning stand-up
- Write Code
- Home for lunch (I'm a 12 min drive from home)
- [1:00 pm] Write Code
- [5:15 pm] Home to run around with my insane 3 y/o
- [8:00 pm] Both kids are in bed
- [8:05 pm] Go for a jog
- [9:00 pm] Either work on side projects or read a book
This is pretty much every day. The software I work on is not exactly inspiring stuff but my company grants me a stable and predictable schedule of which I am thankful for.
-Start remote work at 04:30
-Gym at 10:00, followed by shower/lunch
-Resume work at 12:00, finish at 14:00
-Side-projects from 14:00 on.
Work remotely for a great company, other than scheduled meetings, work to my own time which tends to be split up to AM/PM and also, each day is a different schedule.
The lack of routine is great, I get to work and live at the same time, rather than feeling like my life is dominated by office hours.
2. Uber to work
3. Get coffee immediately on arrival
4. Check email/calendar
5(a). start working on current iteration tasks
OR
5(b). go to a meeting
6. more work on tasks
7. Lunch
8. work/meetings
9. more coffee
10. more work/meetings
11. Leave work, go to Starbucks or Barnes & Noble, etc.
12. Work on the startup project for 2-4 hours
13. Go home.
14. Eat.
15. Read for a little while
16. Go to sleep.
17. GOTO 1
Workday:
- [08:00] Wake up in a daze and make my wife and son tea and breakfast
- [08:30] Shower, get dressed and ready
- [09:15] After prepping water canister and tea caddy, head to garden office.
- [09:30] Procrastinate
- [14:00] Realise the work day is nearly over. Panic. Cram work in.
- [17:00] Finish work, make son dinner and play with him.
- [19:00] Put son to bed and start making wife and I dinner.
- [20:30] Watch Parks and Recreation whilst contemplating an entire career change.
To anything in particular?
- 6:30AM Awake
- 7:00AM Leave home, work on transit if needed
- 9:00AM Arrive at office
No typical day, but typical activities. Day is divided into about a dozen 30-minute and 1-hour chunks )(so, no getting into The Zone like programming), mostly dictated by existing meeting schedules:
~60% meetings
~20% communication, solving things over E-mail when I can, hounding people in person only when I must.
~10% going over the issue tracker, to get a picture of project health, look for warning signs, stay on top of things
~5% writing various reports
~5% working on automation to help me do more of the above
- 6:00PM Leave office, work on transit if needed
- 8:00-8:30PM Arrive at home and collapse
And I thought my 1.5 hours, 3 days per week was bad.
I do not envy you.
Source: had a 1.5hr commute in London (bus, tube, train, bus). 1.5 was best case scenario. I will never forget the sheer happiness I gained from changing jobs to a more reasonable commute.
Can confirm. Not fun.
I begin my morning working on a priority-sorted list of tasks. Then at some point, a 25-year-old DMs me on Slack to do something urgent and fucks up my entire day/week.
Workday:
- 8 AM - Wake up, shower, shave, etc.
- 8:30-9 AM - Ride the subway in to the office
- 9-12 PM - Calls, meetings, data analysis, output creation (primarily in word, powerpoint, and excel)
- 12-12:30 PM - Lunch (but this can shift around widely based on meetings)
- 12:30-7 PM - Calls, meetings, data analysis, output creation (primarily in word, powerpoint, and excel), usually with a half hour break at some point
- 7 PM - dinner is delivered to the office
- 7-~9PM - finish up work for the day
- 9-9:30 - head home
- 9:30-12PM - unwind (internet, side projects, video games, etc.)
It's hard to define an average day, as my end time can be 6 PM, 9 PM, or 1 AM, but 9 PM is probably close to average. The work that I do on a given day can also vary widely. I've got a light day today, hence the comment.
With seniority in the industry comes flexibility, so many of the VPs are able to take 6-9 PM off to be with their family, but even they'll come back online after that for a couple of hours.
Is it something you enjoy?
My level of enjoyment varies based on the cases I'm on. It's generally interesting, it's certainly fast-paced, and I very rarely count down the hours before I can leave work (there's no face-time policies). But after almost four years here, it can definitely get monotonous. Still, I've learned more than I would at almost any other job, and it's taught me a great work ethic, so I'm grateful for that.
I'm a Software Engineer (graduated in 2016) and considering a full time MBA (2 yrs) next year. This sounds like something I'd enjoy - just wanted to get more info from someone in the field.
Post-MBA, they'll still hire from most industries and backgrounds, but take into account prior experience. The interviews will have case questions, where you'll walk through a small case with an interviewer (e.g. a multi-step case on a company, looking at their profit levels, expansion strategy, and similar). There really aren't that many hard skills required. However, the difficulty is in getting an interview. They generally recruit primarily from top 10 business schools, although the largest firms likely cast a wider net. I'm not entirely clear on the post-MBA recruitment process and what exactly they look for. I'd imagine coding skills would not be a negative, provided you could convince interviewers that you were actually interested in consulting, but I'm a little doubtful they would be seen as a strong positive either.
Day consists of sitting at a desk waiting for a customer to ask for something.
Otherwise I play games and wait to get fired.
Collect random commission checks and salary whenever possible
That's what we do. Especially for inside sales.
Outside sales is mostly the same thing, unless you have great accounts. Only difference is you sit at your house and not your desk.
And you also do fake travel and bill it to your credit card for points, and wait to be reimbursed by your company, who think you are out like actually visiting customers lol
Some people do great work and are very skilled but the rest of us are benchwarmers
Perhaps you would be interested in "sales engineering", which deals more with the ingest of customer information and needs, and outputs a configuration (from you) that will solve technically whatever challenges the customers is having.
Sales representatives like me are responsible for portraying an image, telling a company story, and manipulating people into doing quickly that which a rational person wouldn't do at all.
The knowledge base can be learned, but soft skills and truly psychopathic levels of manipulative ability can only be cultivated with intensive experience.
It is basically a performance art at that point :)
- 9:00: Arrive at the office after a 50 minutes commute.
- Bookkeeping, coding, support, administration, legal and answering emails.
- 11:00: Go the gym.
- 13:00: Lunch.
- 14:00: Rocket League.
- 14:30: Same as #2.
- 16:10: Take the train home.
Even though the effective working hours in a normal day are few I do get a lot of stuff done during those. I'm also compensating for the occasional crunch periods where I work 12 hours a day and weekends.
50 min each way is 100 min per day, 500 min per week. That's an entire work day.
A commute that long isn't for founders, it's for wage slaves!
Before we got the office I did 6 months from home and I was highly ineffective. Remote work is just not for me.
The commute itself is rather pleasant and I can work on the train if I wish, although I mostly use the time to read HN and relax.
E.g. Extremely focused, productive mornings for writing code, meaning no interruptions if possible followed by lunch until whenever, then afternoons are flex time for meetings/planning/whatever the business needs.
Workday:
- 6:30 Wake up & prepare myself
- 7:30 ~ 8:30 get to the office / client location
- 8:30 - 9:30 check latest mails, discuss the day with colleagues
- 9:30-12 work/meetings/analysis/testings/documentation
- 12-1 lunch
- 1~7 work/meetings/analysis/testings/documentation
- 7-8 get home
- 8-8:30 eat
- 8:30-10 TV, Games, Books, Relax...
- 10 sleep and repeat
6AM - Wake up - read news / email / Facebook
6.30 - Exercise on exercise bike for 1 hour
8.45 - Office - check PRs, slack, Pivotal Tracker
9.45 - Standup meeting
1pm - Lunch
7pm - Dinner
7.30 - Back at office
10pm - Home - movie / reading / sleep
I have no commute; my office is right beside my house. The only meetings we have are remote (slack / skype) which happen every so often. All communication is through slack allowing employees to work from home whenever they need.
Most of my work is working on the product across multiple projects. Code review on PRs and ensuring that the services are working as expected. We're a small team, it's hard to hide / slack off.
Workday:
- 7:15AM: Alarm goes off. Shut it off, go back to sleep.
- 7:20AM: Ask wife and kids to keep it down, still sleeping.
- 8:00AM: Wife and kids left to school / work, can finally get alittle more sleep / pupper doggo jumps into bed and cuddes.
- 8:30AM-9AM: Wake up realize the time, and jump out of bed and get dressed.
- 9AM: take pupper doggo outside, then head down stairs to office.
- 9AM-11AM: Slack, IRC, Hacker News, Github Notifications, Email, Reddit review.
- 11AM-1PM: Work on consultation work.
- 1PM-2PM: Lunch.
- 2PM-4PM: Work on consulation work.
- 4PM-5PM: Wind down consultation work and start looking over tasks for my own project.
- 5PM-8PM: Go pick up daughter from daycare, have dinner and family time.
- 8PM-11PM: Work on own product.
- 11PM-12AM: Watch an episode of a show I have DVR'd.
- 12AM-7:15AM: Sleep.
8:15 wake up
8:25 drive to work
9:00 check emails/reddit/facebook
10:00 code/reddit
12:00 lunch
13-14:00 code/reddit
16-17:00 head home.
17:40 bike ride/exercise
18:30 personal projects
20:00 game
23:30 bed
Workday:
- 6:30 Wake up and have a small breakfast.
- 7:00 Gym, includes shower.
- 9:30 Have a large breakfast and prepare coffee ;)
- 10:00 Start working on tasks for the day.
- 13:00 Lunch.
- 14:00 Get back to desk and procrastinate for a bit. I like to watch YouTube.
- 15:00 Work on tasks, attend meetings, or pair up with our new-hire on things they're struggling with.
- 17:00 Break.
- 18:00 Work on tasks.
- 19:30 Go home and unwind for a bit, or go see my friends.
- 21:00 Dinner.
- 22:30 Prepare gym bag and food for tomorrow.
- 23:00 Bed.
Workday: - Wake up, shower and walk to the office - Arrive in the office and bake some breakfast - Start doing actual work at ~ 9:30 - Work is usually predefined tasks + reacting to specific customer/management requests - Team meetings happens 3 times a week - Code review over the day - Around 6pm start walking back home
Teacher (UK):
6:30 get up, eat, take child to nursery
8:15 arrive, plan lessons, mark work
9:20 teach
12:40 working lunch (meetings, helping students with work)
13:40 teach
15:40 plan lessons, mark, or attend meetings
16:30 gym
17:30 collect child from nursery and generally feed and entertain
20:00 feed self
20:30 planning lessons, marking
22:00 bed
0500: Alarm goes off. Read the news for 5-10 minutes.
0510: Out of bed, making coffee.
0515: At my desk, coding one of my side projects or learning something new.
0630: Stop working, make breakfast for my wife, have breakfast with her.
0710: Shower, dress.
0725: Leave for work.
0755: Kids are in the classroom. Pandemonium for the next 6.5 hours. Each day I have two breaks (15 min in the morning and 35-ish minutes for lunch). If it's one of my two weekly plan days, I get another 90 minutes for planning/sitting in meetings.
1425: Dismissal, walk kids to the bus, watch everyone leave/get picked up. Head back to the classroom to cobble together the next day's materials.
1530: Out the door.
I'm applying for software developer positions - as much as I love teaching, I'm glad this will be my last year in the classroom.
Workday (kind of, nothing is typical at the firehouse):
- [06:00]: Wake up - get dressed covertly and slip out of the house
- [06:30] Arrive at the station - Get coffee! Find my "relief" which is the similarly ranked person on the off going shift.
- run 911 calls
- [07:30] Have "line up"; Where we discuss what drills we have planned, eat some breakfast... drink more coffee. Talk about the previous day off.
- run 911 calls
- [08:30] Workout. Generally we have a mix of runners, lifters and crossfitters. Sometimes we will do the workout "on air" with our SCBA packs on... sometimes we need to just walk a few miles. Everyone on my shift likes to workout.
- run 911 calls
- [10:00] Shower and checkout equipment or drill. Send someone to the grocery store for the meals of the day.
- run 911 calls
- [11:00] Cook lunch, check email, and do any CE/Online training
- run 911 calls
- [12:00] eat lunch (between 12 and 2pm we typically get to eat... based on calls) , then pick up
- [13:30] safety nap for the long night ahead
- run 911 calls
- [14:30] Afternoon coffee, plan drills for the next shift. Admin stuff.
- run 911 calls
- [15:00] Drill on some piece of equipment. Learn or relearn something. Generally Fire in the morning, EMS in the Afternoon.
- [16:00] start preparing dinner
- [17:00] Flag down and eat (depending on calls). We can watch TV or do personal stuff after this time.
- run 911 calls for the night, try to sleep
- [06:00] awake and get ready to go home.
One of my first stories was with some local firefighters that responded to a car wreck.
When they got there, there was a woman trapped in the wreck.
Then it caught fire. There was nothing they could do but watch the woman burn to death.
Decided then and there that firefighting wasn't in the cards for me.
I was always good with computers. Even when I was writing, I ended up installing a computer network for the local newspaper. Eventually I just gave up and went into computers full-time.
In this case I think "flag down" just means "no responsibilities other than responding to calls."
ETA: Indeed, 4 USC 6(a) [1]:
It is the universal custom to display the flag only from sunrise to sunset on buildings and on stationary flagstaffs in the open. However, when a patriotic effect is desired, the flag may be displayed 24 hours a day if properly illuminated during the hours of darkness.
To the best of my understanding, no criminal penalty attaches to mishandling a flag in contravention of Title 4 requirements, despite the occasional misguided attempt to prosecute someone who, for example, incinerates a symbol of his nation in order to attempt some sort of point about the present conduct of its government. That said, it would surprise me to learn that anyone who flies the flag for patriotic reasons would disregard a legal recommendation regarding the proper manner of such display.
[1] https://www.law.cornell.edu/uscode/text/4/6
The cited provision requires nothing, it is purely descriptive (“it is the universal custom that...” is not “everyone who flies a flag shall...”)
> To the best of my understanding, no criminal penalty attaches to mishandling a flag in contravention of Title 4 requirements,
There is, for actual requirements, like those regarding advertising use of the flag in 4 USC Sec. 3. But section 6 subsections either describe custom or describe what “should” be done, and thus are not requirements in any sense.
If you are at a busy station that typically is the time you get the snot kicked out of you. That is, every time you put your head down the "tones" go off and you get back into the truck to handle a problem for the citizens of your community. Some problems are real, some are perceived, and most just need a firefighter/EMS person to tell them what they should do.
Flag down was captured perfectly by @throwanem.
1/ How many colleagues form a shift?
2/ How do you hand-over in case of a fire that spans across shift rotations?
3/ What happens if you need more help? Will it be the next shift's turn to help?
4/ "try to sleep" implies you have some flexibility within the shift itself?
5/ you do a lot if drills, training, learning .. is it also your job to think about improvements? Wondering how the feedback cycle works here ...
Sorry for the long list! Just really curious.
1) Usually each fire engine is staffed with 3-5 firefighters. A minimum of four is really idea, but due to staffing/budget issues, many departments only have 3 people on each engine. The crew on each engine is usually one chauffeur/engineer/driver (who drives the fire engine and operates the water pumps), one officer (in-charge of the crew), and one or more general firefighters.
In most departments, each crew of 3-5 works for 24 hours and then has 48 hours off (or 24/72, or something similar), there are multiple groups of firefighters that all work on the same physical fire engine. Today, the "A shift" crew of Engine 1 might be staffing the fire engine numbered 1, but tomorrow, a different "B shift" crew will staff the same engine and operating under the name "Engine 1"
On a somewhat related note, the organizational/command structure of the fire department depends largely on size. My department/county had several on-duty battalion chiefs who each oversaw a handful of engines/trucks. FDNY, on the other hand, has ~50 battalion chiefs, each overseeing ~6-10 fire crews, and has higher organization into ~10 divisions and 5 borough commands.
2) It depends on the type of fire/call. If it's an automatic fire alarm or medical call that comes in 20 minutes before shift change, the out-going crew is expected to run the call to completion. However, if there's a large fire/major incident, the command staff usually coordinates shuttling of crews on and off scene to maintain adequate staff on scene, but get tired crews home and fresh crews there.
3) For any large fire, multiple fire engines/trucks from our department will be dispatched. There are standard protocols that determine how many and what types of units are dispatched for each incident. If the needs of the call overwhelm our department, or if the incident is close to our jurisdictional line, the command staff on the scene can call for mutual aid for neighboring departments. Most fire departments have automatic aid agreements with neighboring cities/counties so that the dispatch centers can talk to each other send the needed units
2. The oncoming crew waits until everyone for that shift is at the station, he/she notifies the Incident Commander who will arrange for pickup and change over. These are typically large defensive fires that just take a lot of water and time... not super taxing physically until it's over.
3. We call additional resources from surrounding stations. Our dispatch system is actually really good, coupled with super professional dispatchers.
4. We do have flexibility. I posted the ideal day... at busy stations you generally don't eat much and don't sleep at all. If you are running 20 calls a shift and each one takes 30 minutes minimum... well, your day is long.
5. Yeah, we try to improve all the time. However, change can introduce cataclysmic push back from "seasoned" fire/ems guys and gals. Ideas are constantly evaluated and judged. You need to have thick skin if you put forth a new idea... it is somewhat of a game to give each other a very hard time.
I am a factory worker, truck driver, what have you - a real grunting morlock. Am I trespassing? Ought I confine my interest to topics not too far beyond my station, or what is it exactly you are implying here?
It's just that this site is dominated mostly by people in software engineering and related fields. It's interesting to know what makes people from other fields to come here and _stay here_, given that most topics are about software. To be clear: I appreciate all kinds of people from all fields being here; almost every week I learn something new and interesting from someone who's not in software.
Do you have any advice for someone wanting to become a firefighter? Or any resources that you can point me to?
I cannot speak to the volunteer tier of the fire service, I am simply ignorant to the demands of that side. I can speak to the west coast professional model. To be clear, there are lots of professional options on the east coast too. I just don't know them.
In my humble opinion, this job is not for everyone. This job like any other has lots of cool shit and tons of horrible shit too. The ageism that may or may not exist in software is real in firefighting. Not due to politics or opinion or the SV stuff.... NO, It has do with the physical stress the body takes in this profession. It isn't commercial fishing, but sleep deprivation and picking up patients that weigh 500lbs, fighting brush fires all day, stress from seeing bad situations, etc. is real for most Fire/EMS folks today.
The academies are tough and the competition to get in is really high. For each class in my department, there are generally about 3K applicants. We select 30 or 40 and of those 15-25% will wash out of the academy before it's over.
If none of that makes you change your mind, go get EMT certified, Firefighter I and II certified, then take and pass the CPAT test... After that, start testing at every department that has open applications. You could probably script the app process :)
[1] I graduated just fine, but had pretty major time conflicts with grad school and decided not to go into FF full-time, which pretty much precluded my ability to do it at all, unfortunately.
Four things to keep in mind: first, in most US jurisdictions these days, firefighting is coupled with EMS. So if you're squeamish around trauma, it's probably not going to be a good fit. Second, it's pretty physically demanding. Even if the academic side comes naturally to you, it's a very physical job. Third, it can literally kill you. If you don't handle stress well, it's not going to be a good fit. Fourth, it's a team effort. Even on extremely understaffed departments, you're always dependent upon other people, and they are always dependent on you -- sometimes, in both cases, for survival.
Out of my academy class, roughly 1/3 the class struggled with the academic portion, roughly 1/3 struggled with the physical portion, and the last 1/3 had to work at it, but didn't really struggle.
For reference, these are some of the kinds of things we needed to do:
+ Simulated rescue of 165-pound dummy
+ Move hose lines, both charged (with water) and uncharged (no water)
+ Climb ladders until you suck the bottle dry
+ Crawl through a wire entanglement tunnel in full gear (I think we also went through one round with "blindfold" inserts in our SCBA masks)
+ Drills with time limits on almost everything (donning gear, doffing gear, bottle changes, on-air, off-air...)
And so on. My advice would be, get in shape first, and manage your expectations. Many departments will be pretty hesitant hiring someone who's 20 years more senior than all of the rest of the recruits. Volunteer would probably be a better fit, but less of a career change and more of a side project.
Workday:
- [Variable] Wake up, shower, make coffee, read news.
- [10-11 AM] Take the subway to work (15 minutes)
- [11 AM to 5-6 PM] Work on Monte Carlo simulation or optimisation code / write paper if it's one of those days
- [6-9 PM] Eat dinner with GF while watching something on the computer
- [9 PM - 1 AM] Do some more work (most common option) or play piano or play Rocket League if some friends are around
I personally work in radiotherapy, making simplified (faster) Monte Carlo particle transport algorithms for use in treatment planning, and also finding more "modern" optimisation techniques to handle the many degrees of freedom available on radiotherapy linear accelerators to produce higher quality treatment plans compared to what we can do right now. It's hard to define what a high quality treatment plan is without a lot of background, but basically we try to find ways to put more radiation in tumours while sparing the healthy tissue all around the tumour. My "research" is like 95% programming.
Can you expand on this one?
What code are you printing? Other developer's code for code review? And to be clear, you mean a printer right? That paper comes out of?
Also: I like that you only check email twice. I should look into that.
> ©2011.
Update in 2021?
[06:15] First alarm goes off;
[06:45] Finally wake up, get out of bed, shower, shave, make espresso for me and the wife
[07:15] out the door, 30 minute commute to office
[07:45] breakfast bagel at my work cafe
[08:00] arrive at desk, begin contemplating work -- work on something I procrastinated on the previous day so that I can have a good standup report
[9:00] everyone arrives at office, noise increases 10x, I am physically unable to concentrate anymore. Earplugs and noise-deadening headphones help some, but then having those on distracts me
[10:00 til 05:45 or 6:30 pm] Constant battling distractions, meetings, interruptions, and general work-related chaos, trying to somehow manage to squeeze in any actual developer work. Work proclaims how 'fun it is to work here! awesome! totes cool! We have so much cool stuff! Our culture is the best culture!'
Help me.
Made the switch a year ago after moving from web developer to tech lead and having all the issues you mentioned. Now I'm just writing code again. Best decision ever.
[08:00] First alarm goes off;
[10:00] I'm starting to wake up
[11:00] Some quick HN checking
[12:00] Ok, off to office.
[13:00] At the office; talking with customer if needed, otherwise desperately trying to get some work done amidst noise and distractions, including but not limited to people occasionally playing board games for a break.
[18:00] All my cow-orkers in the room have finally left for the day. Time to get some actual work done.
[21:00] Ok, time to head home.
[22:00] Let's eat something quickly and go to sleep.
[02:00] That side project is _way_ too interesting; I guess I'll be waking up at 10:00 tomorrow again...
So no help from me.
The other day, one of my cow-orkers asked me, how can I bear working late hours - it must be very lonely. I desperately tried not to answer that with "that's precisely the point".
Is your cow-orker also a software engineer (or "engineer" if you prefer, esp. in their case)?
I'm starting to think that a large majority of software developers actually like open-plan work environments with lots of interruptions, however they also don't browse forums like this very much. They do well (or well enough to keep their jobs) in these environments, enjoy them, but they don't hang out on places like this online either at work or after-hours, and go home to play with their kids or watch sports or hang out at bars.
This is a longer topic, but in my mind there's a bimodal distribution on a spectrum of attitude towards programming. Some, like me, are people in love with technology, who go home to tinker on side projects. Other - like that cow-orker - treat software as a career, and they go home to socialize, play board games with friends, etc. Without judging anyone, my impression is that our industry is mostly filled with the second kind of people now[1], and they seem to predominantly feel good in open-space offices.
In the end, I figured that my preferences must be in minority, so I don't complain too much. That is, unless someone is really distracting me for longer periods of time, at which point I'll kindly ask them to stop.
--
[0] - I'm not here to tell him how he should feel about his degree. For myself, looking back at the education I got, I think my feelings were best expressed by a friend of mine: "if for that I'm an engineer, then I'm afraid to go to a doctor".
[1] - I believe it used to be different in the past, but that impression might be colored by small exposure to the real software world in my teens; the kind of people you meet on-line in programming circles are usually self-selected to be tech lovers / geeks.
Don't worry too much: doctors get far more education and training than we engineers do, and it's a lot more rigorous. They have to get a 4-year undergrad premed degree, and then at least 4 years in med school, plus residency (which is basically on-the-job training), etc. It's nothing at all like engineering where you can get a BS in 4 years or so and then be set loose.
But I've seen way too many devs who seem to actually like being able to interrupt their coworkers to think that all devs hate that, and I've seen way too many comments on places like this in favor of open offices.
lol, me too, I'm afraid to admit. Every dang day.
These days I can work from home when I want, but I don't because it stresses me out not to have a clear separation between home and work.
It's really hard. Takes some practice and discipline. One good way is to literally switch everything off (computers phones) at the end of the day. Stops you from "just answering that email" etc.
Another good one is leaving the house (drop off kids, buy breakfast coffee, whatever) end then when you are back home you are "at work". Then repeat when leaving work.
In my eyes it's really addicting, and I usually get this after-disco/cinema low when the amount of people in office starts to slow down.
What's the actual "engineering work" you are trying to do without interacting with people all the time?
Edit: I think most answers can be summarized as "When I'm left alone I get into the flow mode, and that's enjoyable". The same way I mostly get it when working together with a colleague on a problem. Both ways may not always be the most productive, but due to producing a good feeling we prefer these. I see, thanks for showing your points of view.
This seems tricky to reconcile with the "everything is done by a team" model that's currently in vogue.
The above comic strip absolutely perfectly shows what's it about for me. Though I agree there is stuff better done with others (brainstorming, or discussing hard problems where you're stuck; also variants of rubber-duck debugging/designing; I'd say it boosts "breadth" and "lateral thinking"). But for many people there is most certainly also stuff better done alone ("depth" I suppose? often things like analysing interactions between subsystems; or building an algorithm; or reading docs or a paper; researching existing apps/solutions/libs in order to "spreadsheet" their pros & cons; also analysing/designing thread interactions; or debugging, building internal knowledge of a problem - which is also a required step before rubber-ducking, or generally discussing it, is even possible; also arguably maybe reviewing someone else's code).
Things I have to do fall into two categories - either I immediately know how to approach them, at which point I can code while having conversations and there's little you can do to distract me - or, I don't immediately know how to approach them, at which point I need time alone and in peace to load the whole system into my head and think through appropriate steps, possibly running mental simulations of several solutions in my head. The second kind of work is when I turn into a pretty antisocial person - I don't just avoid conversations, I avoid being in the same room with other people.
And frankly, second kind of work is kind of more important. It doesn't take skill to pump out hundreds of lines of code an hour. It takes skill and concentration to write those and only those lines that move the project forward in a way that's maintainable down the road.
With two people these complex systems often also end up in actual diagrams or code, which then can be tested or used for documentation and later lookup.
[1] http://stackoverflow.com/questions/43375012/wrapping-ones-he...
The biggest, most used solutions I helped building usually happened when I cooperated with others. The same discussions that happen in your head, just that part of it is coming from another brain.
For example, I've become known as "the regex guy" at the office. I know regex really well as well as the ins and outs of the regex engines of languages we use. I don't mind when I get called over to help with a tough regex, or optimizing something. But way too often whatever I get interrupted and cross the building just to replace ".*" with ".+" or something equally simple.
I usually just type the solution and tell them my copy of Mastering Regular Expressions is on the office bookshelf if they'd like to borrow it, the first chapter should cover all the basics. I'm also very happy to explain the basics of regex to someone in my down time, but very few people have taken me up on that offer.
1. Give them a quick answer and point them to the book but they'll never read it and continue to interrupt even if you told them to not interrupt for trivial matters. On and now you're so much of patronizing dork. Back to square one.
2. Don't give them the answer, and point them to the book. Now you're the smartass jerk that doesn't socialize. Plus they won't read the book and invent some crazy solution to get shit done and later when you have to fix the mess the WTF/min ratio goes through the roof. Back to square one.
Which leaves you with three possible actions: DealWithIt, RageQuit, or RageFix, only one of them being a long term fix but things don't happen in a vacuum and you're not always in a position to do so.
When the office slows down and things get quieter is when I find myself finally able to get completely focused in on things that require all of my attention.
I enjoy meetings, business talk, planning and miscellaneous conversations with coworkers more than (I think) most software developers, but to get any sizable software project done I do best with chunks of a few hours at a time to get into a focused state, get all of the moving parts loaded into my head, then actually write the code/fix the bug etc.
My solution to this–in an office that I share with people who talk on the phone–is to show up in the late morning after they've made their morning calls, and leave in the evening a few hours after they leave. This way we overlap in the afternoon, but I get some time with a quiet office where I can really think.
Just while writing this comment several conversations happened around me that drew my attention away from what I was writing. When I focused my attention back to the comment, I had to skim what I'd just written to 'reload' my thoughts. At least for me, this 'reloading' process takes a long time when it comes to writing software, despite various tricks I've come up with over the years to help speed it up.
--
[0] - Had long battles about that with my boss. He gave up after a year, realizing that there's no way to make me come before 10:00 regularly (my sleeping patterns are weird), but I am there when it matters and get the job done.
Isn't that the default in software departments/companies? However, usually that is considered an "asshole" by the general population, despite actually being a good reason for not reacting to nonverbal communication.
Helping others is fun but I've been on both sides. There are plenty of people who always need help and never put effort in, and are extremely distracting and lower morale.
And interactions are not always of the "Hey can you explain this" variety. Sometimes it's your manager worrying about a project and nitpicking every detail and still managing to not know what's going on. Sometimes it's your manager trying to prove he is "technical" despite not being technical at all, and just downplays your work. Yes, I deal with this daily. Sometimes people are just assholes, and HR/management doesn't deal with it because they produce or are too afraid. Something else I deal with daily. And on top of that, sometimes I just don't want to talk to someone about something. I just want to focus and get done what I need to get done.
Building systems. Adding features to software. Debugging it. Anything more trivial than generating and wiring classes that someone else designed for you.
I guess a lot depends on the kind of work you're doing. In all of the projects I worked on, 90% of work time would be spend on actually doing it, and only 10% on talking about it (and most of that at the beginning, and then at some critical moments in the project). After the design discussions had been concluded and we've settled on appropriate division of labour (critical aspect: modularity, so that people can work in isolation and have to agree only on interfaces), it was mostly individual work.
Now don't get me wrong, I love helping others and answering their questions, or sitting with them and figuring stuff out. Just not all the time, and not in the very moment I'm trying to do something cognitively demanding (like redesigning half a dozen subsystems, or carefully weaving in new features requested by the client in a way that doesn't disrupt the rest of the application).
I think it's hard to separate the questions of productivity and satisfaction. It's satisfying because you're being productive, but conversely it's easy to dodge the urge to procrastinate because the results are satisfying. So the two go hand in hand.
(And yes, I entirely recognise that for some people the satisfying+productive mode does involve intense, fine-grained collaboration, while for others it doesn't. I've seen both modes work, and don't really see why they shouldn't coexist -- although ideally with walls and doors to keep the noise of the collaborative types at bay!)
Would you prefer if a) the environment was quiet and no one was interrupting you. Or b) the environment was noisy and you were constantly interrupted by people talking about how they spent their weekend.
To many developers, productive work is like taking a math exam. Therefore we want the same kind of environment (a distraction free one) to do our best work.
[05:00 - 06:00] Wake up with the sun, and work in bed on side projects on personal laptop;
[06:00] Get myself together, spend the only waking time I have with my infant child during the week.
[06:30] Gym
[07:00] Commute to work
[08:10] arrive at desk, have breakfast at desk while picking up on momentum from yesterday, or fixing what problem I was too mind-numbed to see through the afternoon before
[8:30 - 9:30] Everyone else streams in. Catch up on non-tech business developments in informal chat.
['til 6:30] Work, work, work + mental breaks on HN. Find 20 minutes for lunch. Tea somewhere around 4:00 - 5:30 PM. Occasionally impromptu meeting with my manager for rubber ducking, feature planning, or architecture question.
Can't complain. Tiny start-ups are great when the personalities fit.
Failing that rough time frame, it's off to a big firm or government where hours are tightly defined. As you're alluding to, time is too precious a resource to squander. I joined this last company not long ago and I'm very enthusiastic about it, but this is the last start-up I can see myself doing. Unless someone is independently wealthy, I don't see how the commitment it takes is an acceptable sacrifice for a full and satisfying life once kids come into the picture.
Serious question: How does this work? Do you work out for exactly 30 minutes and jump straight on transport / in the car / etc? 20 minutes plus a quick shower? Is there no time factored in for cleaning yourself up after working out, to be presentable at work?
The interesting side effect is that people actually expect me to be listening sometimes when I'm not. So they will say something, expect a response, and not get it and it will surprise (and sometimes annoy) them. I've been unable to 'selectively' listen to avoid that, its either all on (and distracting) or all off (and not distracting).
Not unlike processing all of the works of Shakespeare into bags of words and n-gram vectors and correlation maps to get a handle on how you can slice and dice documents for search. Nobody expected the time spent slicing and dicing Shakespeare would generate useful work product, but it did help train you so that you could generate useful work product.
And like the Shakespeare exercises, once the benefit was realized you moved on.
I love being in the office until the cacophony of everyone else begins and the noise is maddening. Sometimes I don't want to need to listen to music to be uninterrupted.
I now work from home 2-3+ days per week, even though I live about 20 minutes from HQ.
tough I am reading the art of learning, and I have been trying to train myself to work in a distracting environment. Because you can never control your external factors.
you can write software any where you can take your cpu, pixel grid and network thing me bob