Hacker News new | past | comments | ask | show | jobs | submit login
One year of solo dev, wrapping up the grant-funded work (marginalia.nu)
99 points by asicsp 4 months ago | hide | past | favorite | 28 comments



> I know from experience that you get a lot smarter if you don’t work every waking hour of the day, and any project is realistically better off run by a refreshed smart guy than an overworked idiot that hasn’t seen daylight for a week.

Good ideas are born in your free time when you put the daily work away and are able to zoom out. Returning Monday after a (long) weekend with a pair of new glasses can be profoundly productive.


I see this kind of thing very frequently and it feels like pandering - no one that is busy working 996 will see your advice and everyone that isn't definitely appreciates the reassurance that they're doing the right thing by taking a break.

As a counterpoint, I worked 7 days a week for the last 2 years (tail end of my PhD) and although I don't recommend it to anyone (my health and well-being suffered) I have maintained high productivity the entire way through. I continued to have "aha shower moments". And if you think I'm lying, I'm exaggerating how much I work, I'll just say, start to finish my PhD took exactly 3 years and 2 months (first year was lighter because it was mostly coursework).

I recently graduated and started as a senior in industry and I plan to keep up the pace for the next 1-2 years in order to reach principal.


Good job and congratulations!

Now imagine how much better it would have been if at those points you were refreshed.

Humor aside -

The value of being mentally clear is becoming more apparent as I age.

There were wayyyy to many days I was brute forcing things through persistence.

These were tasks that I could do reflexively, that I had to force my tired brain to think about. With an added side of castigation as I wondered why I was being so slow.

At some point I looked at the time I was spending and remembered “work smart”. Then proceeded to kick myself, take a break, eat, sleep and start a new day.

Productivity and thinking has been up since.

Have to say The worst impacted is memory. Its not the same as when your mind is simply lifting up information from the deepest recesses you forgot you had.


> Now imagine how much better it would have been if at those points you were refreshed.

There's no need to imagine it - I'm not inhuman, I get tired just like everyone else and I've been well-rested for most of my life.

> Have to say The worst impacted is memory.

Not everyone is the same. My memory doesn't suffer when I'm tired. My fine motor skills do - I've noticed I have a hard time controlling my ring fingers (during typing) after about 10 hours of work.


In terms of mental structure - good memory is partly learned. If you have had less stress or a good chance to build these habits and muscles, then they will tend to hold you in good stead, even during times of impairing cognitive loads.

Also I suspect age will play a part.


I'm willing to concede it may be a software thing. There are definitely things where being tired doesn't really affect your output very much.

Mental clarity in software has extreme leverage, probably among the biggest of any human endeavor. Your effectiveness as a programmer is largely a function of how well you can model the software in your mind. Often seeing immediately how to do things correctly vs bumbling forward can be 4 hours of work vs 2 weeks of work. Actually inputting the code is not the thing that takes time. You could write 50,000 lines of code in a day if typing was the only bottleneck.

This is also in the context of a low-distraction environment where there are zero interruptions. If you're working in a busy office, staying late is usually a productivity boost because you finally get some quiet time to concentrate. Which, again, is good for clarity and hence productivity.


> I'm willing to concede it may be a software thing. There are definitely things where being tired doesn't really affect your output very much.

I work on compilers and I'm pretty sure that counts as software.

> Often seeing immediately how to do things correctly vs bumbling forward can be 4 hours of work vs 2 weeks of work. Actually inputting the code is not the thing that takes time.

This presumes one only works on one workstream at a time. I have many distinct workstreams going at the same time (typically 3-4). When I'm blocked on one because of some ambiguity/uncertainty/ignorance I switch to another stream until I decide/find a solution for the first.


Wait, how do you make design decisions while working on another feature? When is the design work for the first feature done if you've switch to another task?

I slip into this sometimes too, but I feel it's a procrastination pattern to avoid thinking about something difficult, and context switching doesn't really move progress on the original hard problem. It's something I typically try to avoid.


The same thinking everyone claims is happening subconsciously when they're showering or riding their bicycle or whatever that doesn't focus on their code also happens to me when I'm not focused on that code.

Recently I had to decide how to rebuild a fairly large component of our compiler (several passes, artifact emission, etc). It took me about a week for the idea (for how to best do it) to occur to me. I spent that time working on our runtime instead. Then once I had the design/architecture, I worked for 2 weeks straight to implement. And during that 2 weeks I figured out a path forward on something I was blocked on in the runtime.


Right, I also claim this happens[1], but my observation is that the background thinking only reliably seems to resolve when you step into the metaphorical shower. If you stay deeply focused on something else instead, the background processing seems to be supplanted with thoughts about the new problem. It's in fact the main reason why I put so much emphasis on stepping away from the work. Whenever I do I come away with a long list of solutions, often at a pace where I'm barely able to write them down before the next one arrives.

[1] https://news.ycombinator.com/item?id=40482328


Your observation is backed up by modern neuroscience. Effective multitasking is largely a myth.

Obviously one can context switch, but every switch comes at a cost. That cost could be hidden by happiness boosts from not having to think about this difficult thing (=pain) and instead do something simpler that feels like lower hanging fruit and gives more immediate gratification (=reward). But the shower you mention is key and can't provide progress on multiple hard things at once. I agree that this is akin to a procrastination strategy and commend you for the analysis and self reflection.


> You could write 50,000 lines of code in a day if typing was the only bottleneck.

I'm not sure about that:

60wpm ÷ 6 words per LOC = 10 LOC per minute

60 mins × 8 hours × 10 LOC = 4800 LOC per day


Yeah but I'm assuming you're using an IDE though, if not copilot. Obviously it's dependent on the verbosity and amount of boilerplate of the language. Probably more realistic in Java than APL.


To write 50,000 LOC in 8 active work hours, you'd need to input a line of code every 576 milliseconds.

But I was just checking the math for fun, not trying to disprove your main point. You could argue that if human thought was not needed to write code, you wouldn't really need a keyboard at all and thus the amount of code you could input would be virtually unlimited.


Another anecdote:

I do a lot of consulting, and as a result I am often (honestly, almost always) work substantially more than 'full time'

I have more aha moments in the shower when I'm working intense hours, not less. My theory on this is that more exposure to the problem space gives the subconscious mind more to chew on.

I genuinely have no regrets about working a lot as I've found the personal and professional growth to have been very satisfying. I've launched far past most people my age in terms of skill and experience by simply putting in more hours than they have.

Regarding health, it should be noted I don't drink or smoke at all and never did. And my naturally eating habits include zero junk food. I haven't felt any negative health effects from my work/life balance, but I am fairly confident that's largely due to those healthy habits.


Quantity has its own quality.

Personally, my best working experiences were working twelve hours a day with substantial breaks for meals and exercise. Critically, there was still enough time for a full night’s sleep. I was massively productive and in the best shape of my life.

There isn’t time for anything else though. I have only been able to achieve that level of focus a few times in my career — all of them before starting a family. Now it’s all about efficiency, squeezing the most out of the precious hours I can focus on something.


> I have more aha moments in the shower when I'm working intense hours, not less. My theory on this is that more exposure to the problem space gives the subconscious mind more to chew on.

Yup I can nod to this one. I know the relevant codebases back-to-front (from staring at them for 12 hours a day) so it's fairly easy to visualize implementations exactly and where they'll go and what parts they'll touch.


I am in the same camp but from software work. People are different and while I do believe taking a break from a problem can sometimes bring a new light to it, I also don't believe software is this special kind of work requires constant breaks.


Most people by default do take a fair number of breaks, naturally through the office/coworker/commute context. May not seem like much until you don't have that. 8 hours in the office is not 8 hours of distraction free in-zone work.

Solo dev is somewhat unique in that you have none of that.

Rolling out of bed, having a cup of coffee, working 15 hours straight without leaving the chair once is legit something that happens if you don't watch out. If for no other reason than kidney health, that's no good.


What does that do to your kidneys exactly?


Well they ache from dehydration since your daily fluid intake was 1 cup of mild diuretic.


>although I don't recommend it to anyone (my health and well-being suffered)

> I plan to keep up the pace for the next 1-2 years in order to reach principal.

At what cost? You even admit this is damaging to your health and well-being... wtf


> I recently graduated and started as a senior in industry and I plan to keep up the pace for the next 1-2 years in order to reach principal.

In which industry do you go from graduate to principal in 1-2 years?


If a fresh grad (phd or not) reaches that, then this title isn't worth much. No matter if he works insane hours like he mentioned or not. I'd rather say it's a counter-indication.

A workplace that incentivises this actually sounds quite toxic.

The big thoughts come when you can relax a bit and zoom out. That's what you'd expect from a principal title holder, instead of the willingness to permanent crunch mode.


That's part of why it's so hard to keep away though; stepping away gives inspiration and what do you know, your day off was more like 4 hours off, aha!, and then 5 hours of coding. Well, that's not the only way it fails, but it genuinely do be like that sometimes.


I have solved bugs by thinking in the shower - completely removed from technology for a short period of time can be helpful.


Also a profound way to waste your life.


Had to look back at the deep bug you described and I am happy that someone looked into it[1] and got it fixed.

Also happy that they so publicly acknowledged your work to narrow it down!

[1]: https://github.com/oracle/graal/issues/8747




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: