
Getting too absorbed in side projects - _davebennett
https://www.bennettnotes.com/post/getting-too-absorbed-into-your-side-projects/
======
bbx
I've got the same issue, but only for the first 80% of the project. At that
point, the project becomes a burden I have to finish, otherwise I would have
wasted my time.

The initial burst of inspiration is always exciting: you've got a novel idea,
there are no restrictions, no deadlines, no requirements. You don't care about
bugs or beauty, just about making things happen. You could even abandon the
project and it wouldn't affect anyone.

But the last 20%… I usually struggle with that last sprint. You need to handle
the boring aspects of the project only to make it solid enough to launch and
"decent" enough to share. This happened with CSS Reference [1]: very excited
at the start about the concept, but then I had to go through all CSS
properties one by one, and it took a very long time.

My most successful side projects are actually the ones that were quick to
start and quick to finish. I had the idea for a "Web Design in 4 minutes" tiny
project once [2], and for a few days, I couldn't stop thinking about it. I
managed to design and code it rather quickly (as a result, several bugs still
exist, but at least it was launched).

In comparison, "JavaScript in 14 minutes" [3] took me months, and I was
dreading not being able to finish it. It was in the end less successful.

[1]: [https://cssreference.io/](https://cssreference.io/) [2]:
[https://jgthms.com/web-design-in-4-minutes/](https://jgthms.com/web-design-
in-4-minutes/) [3]: [https://jgthms.com/javascript-
in-14-minutes/](https://jgthms.com/javascript-in-14-minutes/)

~~~
cuillevel3
It's worse if your hobby attracts users. Not a lot of users, of course, but
barely enough to continue. You feel responsible and can't drop it. After a
while the project becomes boring and keeps you from learning new and exciting
things.

Soon you have to make excuses to family and friends, which don't understand
why you still spend your time on the project...

~~~
scruple
I'm living through this right now. I get a sick feeling in the pit of my
stomach whenever I think about dropping it. Do not recommend.

------
Carpetsmoker
This sounds familiar, but I don't really see the issue.

Sometimes I get absorbed in a side project, and I'm being creative and having
fun. Why put a brake on it? I think that some of the best things I've done
(professionally) were when I was in a "being completely absorbed in a
project"-mindsets.

Sometimes I don't works on side-projects for months at a time. I just don't
feel like it and I'm doing other stuff. That's okay, too. No pressure.

If you're _always_ being absorbed by side projects then there might be a
problem, but as long as there's is an ebb and flow to these things I don't
really see the problem.

~~~
ascavalcante80
Sometimes you don't realize how many thing are giving away for those side
projects. With those side project don't make you any money, they are pure
leisure you should see it like 'playing video games'. When start to refuse go
out with friends or make simple home tasks to keep working in this side
project, it becomes serious... Of course, those side project allow you to
acquire or improve skills which may be useful in your professional life. But
the way you balance it is very important.

The analogy of 'playing video games' should help you to see how serious and
important these projects are to your life.

~~~
chriswarbo
I get what you're saying, but don't really like the video game analogy. Video
games are about following other people's rules, usually to achieve other
people's goals (the exception is "sandbox" games). I don't think of it as a
creative act, unless it's something extreme like speedrun glitches and
demoscene-like arbitrary code execution.

~~~
copperx
You've elucidated the reason why I cannot get into videogames, even though I
tried multiple times this last two decades.

I love the aesthetics of a well designed game. Pretty graphics are
mesmerizing. But following arbitrarily designed rules and solving riddles
created for the sole purpose of having an end goal for the game,—especially
when one has a teenager-like disdain for authority—is more aggravating than
having to follow rules in the real world.

------
IloveHN84
I'm too absorbed by parenting that I dream about side projects I will never
do.

Enjoy the free time

~~~
albertgoeswoof
I feel like this is an excuse (sorry to be blunt). I’m a new parent and
managed to build and release a side project in the first few weeks, as well as
keep up with a bunch of other side projects. I’ve just had to adapt the way I
work on them. Eg I’m spending significantly more time planning than before,
I’m using tools that have been consistently applied to solve similar problems,
I’m ruthlessly prioritising features, I’m spending much more time thinking
about the implementation before I commit anything, etc.

I know exactly what I want to do when I sit down and write code and to be
honest I’m spending very little time on writing code. It’s maybe 30 minutes a
day, plus constantly going over ideas and research on Trello/iOS Safari when
I’m commuting or I only have one hand free.

I think my productivity is not much lower than before, although there are
moments when parenting gets in the way I still think it’s possible to keep
making progress.

~~~
99052882514569
>I’m a new parent and managed to build and release a side project in the first
few weeks

Oh gee, no, no. If all you know is the first few months, you know not of
parenting time requirements. You need to come back and talk about ruthless
prioritizing and efficient coding when you parent a toddler, or two. Then we
can all have a hearty laugh at this post together.

~~~
celeritascelery
I have two young kids. While I can empathize with OP, I have found that if I
discipline myself enough to get up at 5:00 I have enough time to work on side
projects. Never as much time as I want, but some time. It is certainly not
easy. And everything is in chaos when a newborn arrives.

------
mathgaron
I guess it is no secret that what helps is a schedule.

I do it with accordance with a to-do list: setup realistic deadlines for all
projects/side-projects and build a schedule based on them (The deadlines are
the only "tight" stuff in my schedule, the rest is flexible). Your work/life
balance _has_ to be part of whatever you plan! (e.g. I usually try to have ~2
weekends in the month for other activities and ~2 weekends for projects).

Also it helps me during my free weekend/night to simply keep away from my
laptop, this way I don't fall in the trap of wanting to work 1 hour and end up
working the whole day.

Sadly your problem is quite common. I know too many people that can't handle
their work/life balance...

------
Hedja
Every time I see articles about time management with side projects, it reminds
me of this Onion article:

"Find The Thing You're Most Passionate About, Then Do It On Nights And
Weekends For The Rest Of Your Life"

[https://www.theonion.com/find-the-thing-youre-most-
passionat...](https://www.theonion.com/find-the-thing-youre-most-passionate-
about-then-do-it-1819584843)

------
danr4
I have 3 things that keep me from sideproject burn out:

1\. Users. Once someone uses your project and you're growing, even if it's
slow, it "motivates" me to keep working on it. That is also why for me, it's a
must to keep the project small and launch ASAP, which in turn also helps
against feature creep and bikeshedding.

2\. Delegation. Once I validate the project (people are using it) I try my
best to outsource time consuming tasks, mostly programming, administrative,
research, and data entry. This frees me up to enjoy leisure time while not
feeling the project is stagnating.

You have to find your balance - decide what's the velocity of the project
you're comfortable with. Once I realized that wanting to build and grow as
fast as possible is stressing me out and ruining my social life, I decided I'm
going to try and be ok with slow growth since I don't depend on it for a
living.

3\. Part-time job. I work 3 days a week. This should've probably been number 1
on the list. I still make good enough money to live comfortably, while my side
projects make little money I can save. Obviously not everyone can or want
that, but as a developer I have the privilege of earning the same as some of
my less techy friends with 60% of the work. Frees me up for a whole bunch
stuff.

This might not apply if you have kids and want to save as much money for their
futures sake.

------
captainbland
You have to think though, if full time work requirements weren't so demanding
(yet so necessary, talking from a rent-paying perspective) then you could work
on side projects in a more healthy way and still have some confidence that you
could get them done in a reasonable time scale. Finding a work/work/life
(duplication intentional) balance is pretty challenging.

------
mcs_
After I got my motorbike everything changed. My coworker went for a bicycle,
everything changed....

I use to do side projects to learn more. That is what I used to say.

The reality was that change the activity I really loved for decades to another
has not been easy.

Side projects has been the perfect excuse to stay on the laptop.

How do you replace a no-competitive activity where you are in control of what
you do and decide what and when to do?

So what worked for me?

Find something that exists in the real world, in my case an old, unchecked
desire (learn to ride), and just do it.

How long I waited? Long time, years.

~~~
oasisbob
This resonates with me. Before I took up tree climbing, my side projects were
at the laptop or workbench and never got past 85% or so.

Once I hopped in a saddle and took to the trees, things have never been the
same, and I know I'll have the rest of my life to make it the last 15%.

------
TelmoMenezes
Maybe the real problem is that so many creative people are trapped in wage
slavery?

------
billylo
I am a 49, still love my side projects. Yes, sometimes it's hard to listen to
the signal your body is trying to send you (e.g. forgetting to eat when you
are in flow state.)

One simple view that helped me are the little github green-boxes that show
your commits. If it's too full for long stretches, time to take a break so I
won't burn out.

------
stared
I have the same issue... but it makes me love side projects ("there are no
projects like side projects" from [https://crastina.se/theres-no-projects-
like-side-projects/](https://crastina.se/theres-no-projects-like-side-
projects/)).

I don't take for granted that I can get absorbed by something. It's like...
love. While I can hold myself from it, I cannot force myself to have this
level of energy, and dedication.

What I struggle with are ill-invested infatuations. Obsession for starting a
project, but then later focusing on not-so-important details... or dropping it
in favor of another project. I am haunted by a ghost-town of unfinished
(undead?) projects. For ones that I finished - I rarely (if ever) regret them.

Another story is with balance - how to make sure my projects don't have too
negative impact other activities (don't mind a pile of clothes from time to
time; all in all, I won't get influential by "this you kept his room tidy most
of the time"). Though, it is crucial to take into account long term
consequences on health, paid work, relationships or... energy to do side
projects. E.g. my brother considers it unwise to cut on sleep (I agree) and
claims that overnight work is a load (with high-interest).

Full disclosure: I am a consultant and I do have time between paid projects (I
organize my time, so to be able to have ~50% for side projects).

------
Kiro
> my laundry starts to pile up, my kitchen doesn’t get cleaned, and my social
> contacts get neglected from any meaningful conversation

Yup, that's the sacrifice but worth it for me personally since that side
project became a business and enabled me to do a big exit.

~~~
morgancmartin
This is how I justify becoming so absorbed with my own side projects. Maybe
one day it will prove to be a net positive!

Congrats on the exit. How long did it take you working on the side until you
were able to make it your full time gig?

~~~
Kiro
Thanks.

It was a side project for a couple of years but things snowballed after we
reached a certain threshold and it became impossible to keep my day job.

------
kiddico
We need to make an internet pact to kill floating "navigation" bars.

Especially when they don't do anything other than display your name, face, and
a hamburger menu. If you want the hamburger to follow me down the page just
have that float...

------
angarg12
I spent a few years working on side projects of different magnitude.

My process repeated the same cycle: I come up with an idea for a side project,
start working on it, get more and more involved with time, until a few months
later I am completely burnt out. At that point I drop the project, take a few
months break, rinse and repeat.

I'm glad to say that once you identify this pattern, you can start working on
it and develop healthier habits. I'm also glad to see that I am not the only
one who struggled with this. I wish more people, specifically young and
enthusiastic programmers, read this article and learn from it.

------
alexander_wall
I feel what’s really intreresting with side projects is momentum and sense of
urgency. I rarely have side projects that have a real dead line. However, I
image a sense of urgency to build momentum. Once I am spending every free hour
outside of work on my side project, it’s really hard to suddenly take one day
off. What’s interesting is that this momentum, I think, creates intrinsic
motivation. If you want to be productive you should learn to harness this.
However, of course balance is always needed, even though I don’t consider all
side projects to be part of “work” in the work life balance.

------
xthestreams
I know the feeling. Sometimes I've been so absorbed that I forgot to eat.

I'm trying to get into meditation hoping to find a way to have better control
over that strong force that keeps me glued to the laptop.

------
JunaidBhai
In my experience, I think the problem with side projects is that it starts
with a certain timeline. But eventually, due to unforeseen circumstances or
improvising over a period of time makes the project even more time-consuming.

The whole purpose of the side project is on-the-go learning and therefore you
get this feeling inside that the side project is not optimal, or the project
is not what it should be or that something is lacking. Whatever the reason,
but somehow the side project is delayed on the timeline. Once the project is
delayed; a) Try to finish the side project ASAP by removing some of the
important parts of the project and now it doesn't turn out to be the way you
initially imagined it b) Since the assigned timeline has passed, the project
gets delayed forever as new priorities kick in c) You finish it for the sake
of completing the project because you have invested far too much time in
building it

As a founder of [http://draftss.com;](http://draftss.com;) I get to interact
with alot of other founders who are struggling with completing and making
their side projects beautiful. They want us to undertake the complete project
for designing being Apps UI design or creating landing pages. Some founders
ask us to handle complete projects as we think right, while others provide
inputs for every minor inclusions and deletion. Conclusively, I'd say that it
totally depends how dedicated you would be to your project from start to end.
And that would define how your project is going to turn out in the end.

------
patcon
I had the same thing. My side-projects would end up making me anxious, and I'd
resent them -- whether they were code or volunteering or what. But then I just
kinda left my job -- my ordinary life -- downscaled to the point that I didn't
need my apartment, and started living in a hammock tent in my city's
equivalent of Central Park during the summer. My side-projects (or at least my
appetite for them) are right-sized, it was my distraction of a job that needed
downsizing, and I had the privilege and luck to do that. Now I'm figuring out
that my side-project has given me skills and experience that essentially no
one else has, because I've spent 3-4 years focussed intensely on something
that capital mostly says shouldn't have been getting any attention (it mostly
doesn't). I think I can wrangle that into an ordinary-ish life again, but
we'll see...

Anyhow, just wanted to provide a counterpoint to "side-projects are making me
miserable" when there's likely a hidden 3rd factor: the other thing you need
to work/do to subsidize the life you currently fit into.

Best of luck! I'm excited for your side-projects <3 (or rather, whatever it is
that makes you happy, but I hope you don't stop experimenting with what that
might be!)

------
maxigimenez
So true, It's really hard to get the mental balance to not think about your
side project while doing other things :(. I'm also at the same position.

------
new_here
I find working towards wins (new users or customers) helps to replenish my
excitement and enthusiasm for my project, so I aim for those.

Otherwise, I just end up grinding until my mind eventually says enough and
I'll just have to stop for a few days. I've considered whether a more balanced
schedule could help but have currently settled on the opinion that while we
may be looking for the right approach, there isn't one, only trade-offs. You
either neglect progress on your project or neglect your personal life. You
just have to decide how important each of those are in your life, then
prioritise accordingly and accept the trade-offs.

------
Touche
Great post. I suffer from this to some degree (not to the point where I lack
sleep). For me it's just that I feel this sort of obligation to work on the
side project when I would rather, for example, read. Then I start to feel
resentment from the side project because it's taking me away from that other
thing. This is basically the same thing that the article says :)

What helps for me is having a set time when I always work on my projects.
Which for me is an hour or two before work. This makes me feel less obligated
to work on them after work. But if I choose to, that's ok too.

------
revskill
This was my experience last year. In my case, i just want to build a neat,
universal stack for my future projects. I started with Haskell and feel the
pain with GHCjs. Then i tried out Elm, Vue, Purescript and they lacked of SSR
capability at that time. Then i start with Next.JS and feel the pain with its
opinionated choices. Now i'm done with a pure Typescript, React and Apollo
stack. I reached my goal, not a fun experience, but learnt a tons of things
from it. I must say, balance is hard to achieve once you're far from your
goal.

------
sneak
Hire cleaners. Outsource laundry. Have food delivered.

If you love hacking, nothing wrong with hacking from the time you wake up
until the time you go to sleep.

~~~
zmil
> Outsource laundry

Know any good services for that? I feel like this is always the hot, new
startup idea that's gonna take over but they always fizzle out

~~~
ytjohn
A coworker of mine originated from NYC. They didn't have any space for a
washing machine or dryer in their apartment. No one did. According to him,
there were several dozen laundry services that they could use, super cheap.
All they had to do was put the bag of laundry outside the door in the morning,
and next morning would be bag of folded laundry. To me, this sounded like
heaven, but it was just common for him.

For less populated areas, this seems like an extension of housecleaning
services. I've known a few people that have someone come in, maybe just once a
week to clean. Some have laundry done then, others just want the cleaning.
Granted, since they would be using your washer/dryer, there is a limit as to
how much laundry they can do in a day. Manageable with 1-2 people, but 3 or
more, each with their week's worth of laundry could really add up the dryer
time.

------
hguhghuff
My problem is I become relentless about making the software do what I want it
to do.

If I know something should work, and I can’t get it to work, I’ll work on it
for days weeks and even months.

I hate to say it but sometimes the thing I’m trying to do isn’t even
important, it’s just that I MUST make it work.

------
sureshn
I feel all of this boils down to how much of self discipline we can show in
sticking to our schedules, I have faced this challenge multiple times and it
has been hard,, I believe companies should give friday afternoon's to pursue
our side projects , but there are many who disagree with that too

~~~
bawigga
I recently read Atomic Habits and there was a great chapter in there about
people with a strong ability to self discipline. It raised the question: are
people who have a strong sense of self discipline, better about architecting
their environment for success? The would lead to less distractions and more
work towards their intended goal.

It's a great book, highly recommend.

[https://www.amazon.com/Atomic-Habits-Proven-Build-
Break/dp/0...](https://www.amazon.com/Atomic-Habits-Proven-Build-
Break/dp/0735211299)

James Clear's (the author) blog with a ton of great content:
[https://jamesclear.com/articles](https://jamesclear.com/articles)

~~~
sureshn
This is awesome,, may thanks for this

------
nicolaslem
This sounds very familiar to me. Usually after a month or so of doing that I
feel a mild burnout and cannot touch the project for a long period after that,
if at all.

Needless to say, this is not a very good strategy to build a healthy project
in the long run.

~~~
nullandvoid
I get this aswell! I've had a long standing side project ( 1 year + ) and I'll
have 1-2 months all out followed by another 1-2 months off then rinse and
repeat

------
inoda
This is too fitting for this thread...a rap song about the woes of actually
finishing a side project:

[https://www.youtube.com/watch?v=_2GT2PCUN3Q](https://www.youtube.com/watch?v=_2GT2PCUN3Q)

------
nghiatran_feels
Same situation here. I'm working on my side project, which is modern macOS,
and it totally hook me to accomplish it at the beginning. And then the rest
20% is actually harder than I thought, and I eventually drop it out

------
austincheney
I was able to rewrite and retest my 40k loc side project from scratch in the
past year in a new language. It took some effort, but I am away from home
doing military stuff so I had the time to get it done.

------
mikkelam
I do this so much to the point of extreme obsession, very unhealthy but super
intense and feels so good when things go well. I then put my project on a
shelf and never touch it again :) What a joy

------
jotakami
Sounds like garden variety ADHD. Been dealing with this my whole life...

~~~
ironchest
I second this. Many on the autism spectrum have the problem described in the
article.

------
alpinesnow
Didn't relativity theory start out like that? If you don't want to sacrifice
sleep or free time, use office hours (if you have a job with not much to do,
that is).

~~~
stingraycharles
I don't think it's wise to work on your side projects during work. Moral
objections aside, there's a reasonable chance your employer will then own the
rights to your side project.

------
Escolte
I'm too absorbed in me being worried about being worried about being too
absorbed.

------
gwbas1c
I used to get absorbed in side projects in my 20s that would go nowhere. I
once quite my job to work on one, because I wanted it to turn into a business.
(Where it went is TLDR.)

Anyway, a few months after the business went nowhere and I got a real job, I
decided that I wasn't going to start any kind of a side project until I found
a girlfriend.

That was the best decision in my life.

I'll admit: Ever since I met my girlfriend, (now we're married with two kids,)
I haven't been able to have a long-term "side project." I tried to start this
and that, but what I realized is that anything that interesting would be so
all-consuming that I'd need to quit my job; and that I have no desire to
figure out how to make it profitable.

So, every once in awhile I take 1-2 days off from my job and work on learning
projects. I don't have any expectations that they will ever be finished.

------
purplezooey
Personally I think balance is overrated.

------
kannanvijayan
My perspective on side projects has evolved over time. When I was younger I
would generally devote time to implementing project ideas. This was fine for
smaller projects, but larger projects were cumbersome (the "finishing"
problem). The birth of my first child threw another huge wrench into my free
time and ability to do "work after work" (even the mental energy after a day
of work and child-rearing was lacking).

Somewhat organically, my side-development has shifted into a more meditative
exercise. While the day job necessarily forces consideration of
prioritization, deadlines, and other concerns - my side development is free to
be "pure" with respect to some goal.

These days I take small problem spaces and implement them _again_ and _again_,
from scratch, trying to get a finer understanding of the problem each time.
The code is not on github or publically shared - it's not really meant for
outside consumption.

For example, I did several re-implementations (from scratch) of a tokenizer
for a toy programming language with some typical syntax, with the goal of
optimizing the core tokenizer loop while still handling a full unicode input.
Just to illustrate why I find these sorts of exercise to be valuable, I'll
expand on this example in detail.

Over the various implementations I gained a few key insights that I carry
forward in my future implementation work:

1\. State machines with O(1) dispatch using arrays-of-edges for transitions
seems appealing at first, but is in fact a poor optimization choice. The
approach assumes an even distribution of probabilities between all states, and
the distribution is in fact highly skewed. A hand-rolled approach that is able
to carry the current tokenizer context implicitly in the code-location
performs far better. The final design was a parser that has a top-level
`nextToken()` routine which checks the first character and then uses a series
of conditionals to branch into subroutines for parsing individual token kinds.

2\. Rediscovered the well-known trick of using sentinel characters in the text
to eliminate the "test-for-eof" branch in the inner `nextChar()` function
which is the main workhorse of any tokenizer.

3\. Pushing the parsing of full unicode entirely out of the fastpath by
leveraging the fact that the first byte of a multi-byte unicode character will
fail any test for an ascii character or range. This led to a design where
instead of `nextChar() -> Unichar` as the interface, we split the methods. The
fast-path method is `nextAsciiChar() -> MaybeAscii`, which blindly returns a
type-wrapped `u8` value. The value is then sent through the series of fast-
path checks in the main control flow. If the fast-path checks fail, there are
two methods that help handle the slowpath: `unreadAsciiChar(MaybeAscii)`,
which can implicitly do a blind decrement on the current text cursor, and
`nextFullChar(AsciiChar) -> Unichar`, which reads the full unicode character
without unreading the first byte.

4\. Realizing that it's better to use a temporary copy of the current cursor
during the invocation of a single `nextToken()`. That memory write at every
`nextChar()` can be eliminated and replaced with a single write when a token
has been successfully parsed (or error). Updating the cursor pointer in place
can potentially be eliminated by a smart compiler, but given that we're hand-
rolling our tokenizer due to reason 1, the tokenizer code gets large enough
(and contains enough loops at various points - e.g. to parse numbers,
identifiers) - we cannot expect the compiler to both inline everything as well
as eliminate every spurious write-back of the current cursor position. This
prompted a modification of the design to have the methods not be implemented
directly on the tokenizer, but a temporary `TokenParser` value-type that is
effectively a `(&Tokenizer, *u8)` that is moved around by value through the
control flow, and is written back and destroyed when a token is parsed (or
error).

5\. Optimizing the parsing of keywords (which show up as identifiers) was
interesting. The trick I used here was to keep track of the cumulative `xor`
of the low 4 bits of each identifier byte. At the end of parsing an
identifier, this cumulative value is fed to an explicitly coded state machine
which switches directly to the most appropriate subset of identifiers for that
(admittedly terrible) 4-bit hash value. A better hasher did not justify its
own computation cost.

6\. Reordering all of the sequences-of-conditionals using a statistical
analysis of the probability distribution of characters at every step in
typical source.

That whole process took about a year of casual work. I didn't drive myself to
complete it - but simply let the problem sit in my mind and percolate - trying
new ideas and implementation strategies as time allowed. The final set of
insights I derived from the exercise are something I consider very valuable.

A tokenizer is a simple thing, conceptually. It's something a sufficiently
intelligent first-year CS student should be able to whip up. It's something I
myself have done for various pragmatic reasons several times. But the
meditative exercise: "take a small thing, make it faster, then make it faster,
then make it more faster, then faster yet", has provided me with a real
insight into all nooks and crannies of the problem space. Something that
seemed trivial at first yielded more and more depth the more seriously I
analyzed it.

This approach to spending your "side-time" is not appropriate for everyone. If
you want to ship stuff, and that's your motivation (a perfectly reasonable and
fine motivation), this does nothing for you. If you have a lot of extra time
and the energy to complete large projects independently of your employment,
that might well be a better choice.

But for those of you who are finding yourself in the same position as I am:
not enough time for big projects, not enough interest for small toy projects..
perhaps treating your side-development as a meditative exercise on a focused
problem is something that works for you.

For me personally, it gives me a lot of gratification because I appreciate the
gained understanding far more than I appreciate the litter of toy projects
I've produced in my younger days.

------
golanggeek
True! Nicely written..

