Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do you motivate yourself to keep working on a project?
252 points by SamWhited on Jan 14, 2019 | hide | past | favorite | 171 comments
I've been working on a small issue tracker for a few months, and it's been ready to release for a while, but I have one more hurdle that I just can't convince myself to overcome: billing. I hate working with the payment provider I've chosen (but they really do seem to be the easiest thing, others I've looked at are no better). I end up with horribly messy code from their terrible Go SDK, everyone says their documentation is great, but as far as I can tell there's a lot of it that all leaves out important information at every step, so I have to tease out how to deal with their million edge cases, etc. I've been putting off a billing rewrite for weeks now and not working towards an actual release; it's to the point where I'm questioning if I even want to be in this industry (although to be fair, I've been questioning that since before I got into software).

What do you do to keep yourself motivated? Especially when you hit something you hate to work on but is necessary.

One day, you will be dead. Each year that passes after your death, fewer and fewer people will remember who you were, what you did or what your face looked like. Eventually, you'll be completely forgotten. Who cares if that side project you put out sucked or not. Might as well put it out there and see what people think. There's a good chance too that the project won't even be remembered even by the time you die.

The best way to get experience is to do things, so given that no one is going to remember, might as well try to do it. Your successes won't be remembered along with your failures.

I usually like to save my existential crises for later in the week, but thanks for helping me dive right into it on a Monday morning.

Its really not anything more than that silly yoda quote "do or do not there is no try".

Motivation/willpower is a very weak way to get things done, approach it instead with "I'll just write one line of code today/work on it for 15 minutes straight/document one thing/design one function". You'll likely find that once you start, you'll do more than you planned, the crux is almost always the start. You look at the entire body of work and think "its too much to do in one sitting", but ultimately thats your reptile brain talking you out of expending energy needlessly. So just use that little mind hack to get you out of your cognitive dissonance and started.

And if the prior posters statement gets you into an existential crisis, I'd start reading up on the stoics, buddhists, etc... Yes even if you're an atheist/whatever, accepting ones fate in the universe has no meaning is ultimately relieving. Or as a Shinto priest once told me: Life is a dance, dance to the music while it plays, you may not get another chance to dance!

> And if the prior posters statement gets you into an existential crisis, I'd start reading up on the stoics, buddhists, etc...

Not that it's not a good advice (I'm quite enjoying Meditations by Marcus Aurelius), but I'm fairly certain the above-poster said so in jest.

This comment made me burst out laughing. Well done sir.

Also laughed out loud at this. Thanks :)

It's also quite a freeing way of approaching a project - as long as I don't go to the extreme of not caring at all!

Reminds me of the "pale blue dot" perspective - when stressed visualise planet earth from further and further away.....

That line of thinking can also be quite demotivating. For instance, it could also be used to argue that since none of what I do matters anyway, I might as well spend it doing something else such as watching TV, playing video games, hiking in the forests, reading a good book, etc.

I've been thinking about that lately.

A couple of months back, I went through an existential crisis. I couldn't find a universal, cosmological reason for being, and, therefore, for doing anything productive. I asked myself: to what end is ouputting effort, if none of it will ultimately matter?

It took me some time – and a Viktor Frankl quote – to get out of the rut. Yes, my life doesn't matter as far as the Sun is concerned, or the black holes that make up the center of our galaxy, or the dark matter, or the next grain of sand I'll encounter... So what?

I enjoy making things. I get a kick out of it. Whenever I'm not facing the dread of failing (an excessively-frightening event that's seriously up to no good), I'm giggly about making effort towards creating something I value. Could be a short story. Could be another element of web design. Could be a philosophical paragraph or two. I enjoy it.

At some point during the bleak week, I thought of killing myself. Why bother if none of it matters the least, right? Might as well not experience any of it.

And then it clicked: it's the same fear you experience when you face the prospect of asking for something and may be rejected as a result, amplified to encompass my whole existence. It's like asking the boy/girl out, but if I'm rejected, by whole being is at stake. Like I'm going to lose myself if I make the wrong move here.

"What the fuck? I'm gonna cancel my being subscription just 'cause I'm afraid to ask the life out? Fuck no!"

What I was left with is my passion, and the fear I'm facing. I didn't just not want to die: I wanted to live. I wanted to explore, to create, to love and be loved – all a consequence of the inner passion I was afraid to realize. Why would there be need for a higher reason when, down here, I'm all good for doing something good?

Most things you face are deeply circumstantial. Life as we know it is absurd. If you want to live, you might as well live without resorting to fear as your safety net.

I don't see why people say things like "Life as we know it is absurd". Because we die? Or.. I don't know. What would be a non-absurd life, then?! Absurd, compared to what? Just because some existentialists said life is absurd, doesn't make it so. (Maybe it was to do with the cultural loss of religion, God no longer there watching, giving life meaning - the creator of the universe caring a lot about you personally, eternal life etc. That plus WW2..)

We're born into presumptions. We grow up surrounded in presumptions. We live through a life full of presumptions. We die still surrounded by presumptions.

I think it's safe to say that most people act as if those presumptions are solid borders that one can't – "not allowed to" – cross. Behaving in a way that others see as silly, or out-of-place, or not based in reality challenges others' presumptions, and we're terrible in handling views that contradict ours, even if said behavior does no damage to the fabric of the society the "silly sod" is in. (Your comment's upset tone suggests as much.)

Imagine seeing a man dancing down the street. He doesn't disturb anyone, takes precautions to avoid colliding with people and things. He has no headphones on. What would you think of him? That he's crazy? mentally-ill, perhaps? unstable? Maybe he's drunk? high? under a different kind of influence?

He's just dancing down the street 'cause he feels like it. No one is hurt, yet so many are upset. Why? He's challenging the presumption that it's not okay to dance – or express joy so openly – in front of those uninvolved, in front of strangers.

Why do we presume so? I haven't the slightest clue. (I have an idea or two about why it could be beneficial – social coherence being one of them – but I don't see any ultimate cause for such a barrier.) Just because I might relate to how the majority would feel does not automatically confirm that my feelings are meaningful, in an existential way.

No, just 'cause someone told you something is something, doesn't mean it is. If so many people arrive to the same conclusion independently, however, it should say something about the validity of the state of things. I don't need people to tell me how to feel – but I feel similar to how they feel, maybe we're onto something.

A more productive venting for your frustration may be asking more insightful questions. Asking what the idea of "absurd" in "absurd life" derives from is a good start, but only as long as you seek to hear the answer, rather than have it disproven.

For what it's worth, I find that the reasons you state in the parethesis are of little relation to the reality of such views. They seemed, intuitively, to have paved the way for people's disillusionment, which probably sparked a whole lot of introspection and consideration. I don't think, however, that people never wondered the same questions before. (Might be wrong, but hasn't Marcus Aurelius famously expressed similar views in Meditations, at the time of Ancient Rome? I need to finish that book.)

As a matter of fact, I haven't seen a single philosopher denouncing existentialism in favor of the more "real" reality, for things matterring exactly as much as we value them. (I'd love to be proven wrong: that would be a marvellous read.)

Have you never felt like an unwritten rule in the society around you made no sense, regardless of how much pressure you received towards following it? George Carlin said, early in his career (paraphrased):

> Not running with scissors – that's a good rule! That's a rule I'd like to follow! These motherfuckers are sharp! Not singing at the table, on the other hand... What happened there? Some poor bastard sang badly at the table, and the rest of us have to suffer for it? What about singing while standing next to the table?¹

¹ https://www.youtube.com/watch?v=2pgzWRVEqHY

The definition of "absurd", roughly, is "not following what is evidently true". You asking me what time it is and me replying "Chicken!" is absurd. So are so many of those presumptions we're born into, live through, and die with. I don't think it's because we die: I think it's because most of those presumptions make not a lick of sense, when you think about them.

You wrote: "He's just dancing down the street 'cause he feels like it. No one is hurt, yet so many are upset. Why?"

Maybe people frown on that or treat the man awkwardly, because they see it as "weird", which subconsciously really means "unfamiliar/uncommon and unexplained, therefore the odds are increased of it being a threat to me or interfering with something that is familiar or desired to me." I think that happens a lot.

There is a story I read (which might have been in Covey's "7 Habits..." book), about a man with his very noisy, disruptive children on a subway train: the passengers seemed irritated, but when he explained to one passenger, that his wife and the children's mother had just died at the hospital, from which they were now returning home, and maybe they were all a little confused and out of their normal behavior. Then the perception of others suddenly changed from "control your kids" to "oh, how might I help?"

Which connects to the whole set of ideas about how we judge each other superficially, but sometimes there could be some reason for our doing so (our safety, or comfort levels with surprising behavior where we have no choice whether to be around it). I expect that is the source of many social norms. Another way to look at it is to consider that we might best not judge others too harshly, and we might be understanding, including to those who themselves judge others harshly, since in all those cases we don't know why they do it. (None of which is to say we should not have any boundaries while thinking about it.)

Various comments in this discussion are interesting. My belief in God and my choices and the specific, long-considered reasons around that are directly connected to why I feel peace and motivation even when things are very hard.

Are those "specific, long-considered reasons" revolve around your religious belief? If so, could you share them? I'm an atheist, and I'm looking to understand the mindset of people who are religious. It was never self-evident to me, and I'm curious why it may be to others.

Thanks for asking, I hope I am not too slow to reply.

The perhaps overly short version is: I have read and tested the Book of Mormon (a companion to the Bible) in the way it says to test it (http://www.mormon.org), and a lifetime of experiences when I followed what I felt inside that I knew was right ("knew" as in, I know I love my wife, or what salt tastes like, but can't necessarily prove or explain it to someone who doesn't want anything to do with it), vs. when I did not do what I knew I should, and the results I found from those choices. Those things together have solidly convinced me by now (with some time lost & hard consequences from learning the hard way at times, and real benefits when I learned the easy way). Life is still challenging, but that is part of the educational program I believe we signed up for, which is worthwhile, and the tools are there for dealing with the hard things.

About the Book of Mormon (and Bible): I have given them a lifetime of almost daily reading and contemplation (sometimes intelligently for me, sometimes not), plus have read some books and articles where people have commented in really fascinating ways about it (Daniel Peterson, Hugh Nibley, fairmormon.org which tries to answer critics, & others), as well as some anti-... material, and have thought about things from various angles ("what if it really...?"), and am satisfied that the debate is more for those who really like debate, while asking hard honest questions is a good thing because that is how we learn, and good things are there for those who seek, and I truly wish the best to all concerned, but ultimately, "proof" to satify everyone is always not going to happen in the way that they want it, and we have to seek according to our personal desires. The invitation from God to know for oneself, is there (as demonstrated by the Book of Mormon, its test, and many associated things).

There is much more detail; I'm happy to share more or try to answer specific questions, whether here, or by posting online some notes I already made but should probably reformat & clean up somewhat. One may also email me if desired (EDIT: at luke425 <symbol> lukecall.net). (From a practical standpoint, I might check this thread or my email somewhere between every few hours and every few days, but am happy to continue the conversation in that way, and after several blank days would assume this thread is complete. Suggestions always welcome. :)

Let me see if I understand you correctly...

Your conviction comes from the fact that you've read, almost daily, and contemplated over the Bible and the Book of Mormons, as well as read a good number of comments for and arguments against your position.

You also derive it from your life experiences, particularly those where you have either done or not done what you thought you were supposed to/felt good about doing.

Am I getting this right?

Were there any particular experiences or turning points when you may thought "Hm. Is that what my life is about?" or "Ah-ha! That is what I'm supposed to do!"?

Yes. One quick note: "Book of Mormon" (aka BoM or BofM) is singular: Mormon is the name of an ancient prophet/writer, not the name of our Church.

I posted material at http://lukecall.net (under "why I believe"), but the most direct answer to your questions might be at http://lukecall.net/e-9223372036854605861.html and pages to which it links. Honest questions & feedback are always welcome.

(The web site is generated from my note-taking program. It is intended to be very skimmable, where one can click on links if they are interesting, otherwise one doesn't see the details. There can always be more editing, but hopefully it is useful. Maybe in the future some levels should have a summary document of the contents, so you don't have to click around as much to read it in big chunks. Only part of the code to do that is written--to generate single-document outlines from my note-taking program, but not yet to include them in the web site.)

That is a decent summary of what I wrote, but there is much missing. It deserves, and I want to give you, a better than off-the-cuff answer (mostly posted at my web site) but with my schedule in the next few days it might be Tuesday or Wednesday when I can post again here. (I don't remember how long these discussions allow follow-up posts, but my email noted earlier is a fallback.)

Made good progress. Looking like 1, maybe 2 more days.

>A more productive venting for your frustration may be asking more insightful questions. Asking what the idea of "absurd" in "absurd life" derives from is a good start, but only as long as you seek to hear the answer, rather than have it disproven.

I didn't feel upset or frustrated, I regret giving that impression. Your 'tone' seems to me extremely arrogant, and it makes me want to not engage a moment longer with you. It sounds like you think already have all the answers. I'll let you talk with more 'insightful' people.

> It sounds like you think already have all the answers.

Not all, but the ones I have, I'm fairly confident in.

> I didn't feel upset or frustrated

> it makes me want to not engage a moment longer with you

I guess it's pointless to ask about the "?!?", then.

True, however, though you never know how what you do - no matter how small - will motivate others to something even greater in their lives. As pointless as it may seem - having the drive to progress helps others take on that mentality and move toward something greater as well!

> [...] since none of what I do matters anyway [...]

What makes you say that?

Is what you’re doing now worth doing only if people remember it after you die?

Not in this case. It directly relates to launching side projects without consideration for perfection which provides quick feedback.

The main thing to consider is which way of spending one's time will be more fulfilling in the long run.

Sure. If that makes you happier, there's nothing wrong with that.

Along these lines, I always try to be purpose driven: I make software because I'm good at it and because it makes me money. I need that money to buy food and clothing for me and my wife and our kids and to pay for having a roof over our heads. If I were better at something else, or not good enough at software, I would use that skill to accomplish the same task for the same reason. Usually it is enjoyable and rewarding to solve problems using software. But it can often be stressful and difficult. That's part of any job though, they can all be stressful and difficult. Going to a different career path will not relieve you from stresses and difficulties, it will only change what they are. So instead, if you enjoy writing software and are good at it, just learn how to overcome these difficulties and stresses in a good and healthy way, and keep remembering that at the end of the day, you're probably doing it for a higher goal.

Not to sound depressing, but as I read this comment's first paragraph, a negative perspective was my initial thought, and not the positive aspect.

It's worth noting that a "YOLO" attitude can be used as a double-edged sword for motivation (e.g, "One day I will be dead, so there's no point in vying for success")

I guess that depends on what you mean by success. If nobody ever remembers my successes, if I never make "disrupt" any industry, if I never get to retire, if my works are never immortalized, even if all my software becomes obsolete one day when the SDKs that I'm using no longer exist (which has already happened a few times), as long as I can pay for my family's food by solving problems for other people, I will be satisfied.

Very stoic of you. I like it !

I found this idea very motivating indeed. It reminds me not to take myself very serious and just start doing things. In fact thanks to your comments I started a new daring project today that is really challenging. Who cares if I fail... Nothing will be remembered if I fail, and there's always a chance to succeed.

Everyone dies.

"you live only as long as the last person who remembers you"

Haha, that's the only thing keeping my depressed ass from killing myself. Gonna die anyway, no need to rush it, might as well do something. Not doing much, though.

I thought you were going to say: “Who cares if you build this project or not. Go out and enjoy life, as long as you can.” :P

I like to sum this sentiment up as:

"One day even Socrates will be forgotten."

Some framed-on-the-wall level of motivation right here

I use modanifil.

Understand sometimes motivation is lost due to low level of dopamine feedback loop.

I tried to motivate myself by thinking about negative scenarios like loss of job due to low performance etc...but it made motivation worse.

You can take DRIs like Modanifil or Armodanifil to setup a stronger Dopamine feedback loop.

Some people have this naturally so they are lot more driven, focused and motivation..

Some people suffer from low level of these due to lifestyle, diet or genetic reasons.

So far it has helped me, some day I work 20hours+ and don't feel drag.

Launch without billing. You can implement that later. "Free while beta! Early adopters will get a special discount!"

Make sure you are breaking up work into small releasable steps. You should get the "oooh ahh" feeling of tangible accomplishment at least a couple times a week.

Get users as quickly as possible. As soon as you have one real user, it suddenly feels like you're participating in the real world instead of working in a hole. Announce changes to your users; positive feedback from them is emotionally buoying, negative feedback is an opportunity to fix what you just broke.

Create a facebook group/mailing list/forum/whatever for your early adopters. The community will help motivate you.

Spend time refactoring. Whether or not the investment will pay back with more productivity is irrelevant; clean code improves your quality of life and makes you look forward to work and that alone makes it worthwhile.

Revisit every decision... Do you REALLY need it to ship MVP?

Shipped code is better than perfect code.

Wait until people complain about something before fixing it. This is how you prioritize.

The worst thing is not that it breaks but that people NEVER use it. If people use it and don't complain that means they don't care.

Force yourself to ship every 1-2 weeks.. no arguments. Ship continually.

Use feature toggles. This way if something breaks you can turn it off.

Tell yourself you’ll spend five minutes working on it. This tricks your brain into thinking it’s not a big pain commitment. Once you’ve spent five minutes immersed in it you’ll be more willing to keep working.

Another trick is to break down the task into as many subtasks as you can, and when you’re feeling obstinate about working, just get one small subtask done. It also helps you visualize the finiteness of the total pain you have to endure.

There’s basically no way to be intrinsically motivated about tedious, pointless-feeling work, but you can connect it causally to the overall success of your project, which presumably you do care about.

Yes to that. There is this guy who once broke his leg climbing a big snowy mountain. He was alone and got to go back in the valley. But it could barely walk, was dehydrated and hungry. In very bad shape. What he did was looking ahead a couple hundred meters and telling himself "Ok, I just go there and stop". Once he got there, he was like "I might just go there and stop". He reaches the valley and got saved.

This sounds like Touching the Void (https://www.imdb.com/title/tt0379557/).

I use this exact method to get myself to workout when I am not feeling like it. I tell myself I will slack off and not really go hard today. ie. It's better to do a workout at 75% effort than skip it altogether. Inevitably, once I start I find myself working out as I normally would.

My method is if I show up at the gym I already succeeded and pat my own shoulder that I'm great. The workout itself seems easy compared to get up in the morning and drive there...

Good trick.

I keep a separate list of "dumb little things" to fix that don't require much thought or effort. I'll grab something from that list, which makes it easy to start; then once the editor is open I start getting into the zone.

This is the 'it's too cold outside' runner's trick for motivation.

If it's very cold outside, you tell yourself 'if it's too cold after 10 minutes I'll come back in'. But you never come back in. It's a matter of getting started, nothing else.

We are funny creatures.

That never works for me: after 10 minutes of running, I'd be thinking things like "Is my 10 minute rule really meaningful if I don't REALLY allow myself to quit after 10 minutes? I should quit today just to reinforce to myself that the rule is really meaningful.". Then, next time I run I have exactly the same thought and the whole concept falls apart.

Is that just because you don't actually like running?

I used to always want to quit running ASAP, and the feeling just didn't go away whether I ran for five minutes or an hour. Fast forward some years, I'd gotten into cycling, enjoyed my rides and was in a much better physical condition. I also had a heart rate tracker and was used to training with heart rate zones. So one time I went for a run, first time in years, and tried to stay in the <60% HR zone. I started at my normal speed, realized my heart is racing, slowed down and eventually realized that even at my slowest possible running speed I'm going over my heart rate target. I had to settle for alternating between very slow running and walking to keep the exercise level light. Of course, after a couple of "runs" i could keep up better, but still running at any kind of speed is hard exercise for me.

I gather this is a common phenomenon, and most beginners run way too fast.

But the rule is "if it's too cold after 10 minutes I'll come back in." If it truly was too cold out, then you really can quit and come in after 10 minutes. But it typically isn't actually too cold to be out there and you're just using it being cold as an excuse to not go.

I've personally spent a lot of time examining my own motivation. I built a project called Deep Thought https://www.deepthoughtapp.com/en/keywords/motivation/

I have several techniques:

- Be kind to yourself

- Be comfortable with not finishing everything you need to do today

- Break down large tasks into smaller tasks

- I break down the small tasks using https://asana.com/

- Complete smaller tasks to gain motivation/momentum

- I try to use other smaller tasks (not related to the project) to build momentum

- Break up my day into time slices

  - Gym for 1 hour

  - Work for 1-2 hours

  - Lunch for 1 hour

  - Work for 1-2 hours

  - Some other activity for 1 hour
- I use my Apple Watch timer to trigger me to move along

- You can use a time tracking of sorts. I've been trying https://clockify.me/

  - I use tags to indicate what I'm doing:

    - Relax

    - Play

    - Planning

    - Research

    - Programming
- I set in my calendar times for

  - Breakfast

  - Reflection

  - Work

  - Gym

  - Social

The way you structure matches my weaknesses nicely (such as use momentum from smaller tasks), thanks for sharing.

We have an "accountability group" that is amazingly powerful at addressing this, for people who are willing to admit they have issues with procrastination and motivation, and are committed to addressing it and helping others address it as well. This is mostly for the self-employed especially those that otherwise work mostly solo so they don't otherwise get a lot of external stimulus, which is essential to many people.

The only thing I've found that comes anywhere close to this is Adderall, and that has awful side effects.

I've been in several of these type of groups over the years, and they usually fail because people flake and no one calls them on it. I think we've finally gotten the formula right though. The main thing is that people who aren't doing their part will get a warning and get removed from the group if they don't take it to heart. We make it indirect....instead of calling someone on it directly, you tell someone else, and they address it with the person.

I could describe our whole system in more detail (there are a lot of little tweaks we've made), but the main thing that is important is that you have to think of it as a complex engine that needs fine tuning to keep "firing on all cylinders". Don't be shy about telling others what you need. But mostly, make sure that everyone is vigilant. If you flake on the tasks you are committing to, we can work with that. If you flake on monitoring others, you get a warning and if you keep doing it you are out.

One of the things we've found works well is to structure tasks so that getting started in the morning (or after a long break) is easy and -- if possible -- fun. That is, you never leave a task in a state where you have a long "warm up" period. Get it to a place where it is satisfying to work with before you put it down. This often means finishing up a major task, then starting a new one and just getting it going before you call it a day. And of course write some documentation (which could just be a todo list) before you stop work.

We're eventually planning on doing this in a bigger way (with a web app, etc), but for now we're open to bringing new people in if they are very VERY committed. Get in touch if you are interested (rjbrown at gmail). You need to be willing to use Skype video chat several times a day.

Would love to see a "whole system in more detail" write-up!

It's in the works, really! But right now I am on a schedule and don't have time to do something for public consumption. :)

However, I'll add a few things.

Optimum group size is about 7-10.

Everyone has a monitor, that is, a person who is holding them accountable. These get randomly switched out every two weeks. You never are monitoring your own monitor.

Every monitor has a manager. Again, switched out randomly every two weeks. Everyone will tend to be a monitor of one other person else, and a manager of another, at any given time.

There is one person who is overall manager, and that person keeps private tabs on everyone, including how people rate one another in terms of committing to their tasks and following through, monitoring others, and managing.

If a person feels that their monitor is not doing their job, they communicate privately to the manager. That person will step in and try to address it. Diplomacy is important. Don't be mean or insulting, but also don't tolerate flaking. Fix problems immediately.

Everyone checks in several times a day with their monitor, via one on one video chat. It is important to have a direct discussion. Monitors always need to be vigilant for "avoiders."

Monitors should attempt to understand the project the person is working on, and everyone should attempt to make their project presentable to their monitor.

If you say "this is too much effort and is taking time away from my actual tasks," you are probably not ready for a system like this. Those who need it will recognize the importance of spending the time. Always keep in mind, there is an alternative, a life of "working for The Man." This is better.

This seems like a very effective solution, thanks for the idea.

No problem. We're going to start a new group (and also do a web site and an app), maybe you'd like to join?

Who specifically is the “overall manager?” And how does working for the manager differ at all from working “for the man”?

I might wanna join

Currently I would probably be the overall manager for any that I'm involved in, but it could be anyone as long as they have the skills. And the manager is mostly just making sure the whole system keeps working well, while individual monitors (everyone is a monitor) are the ones most directly keeping people on task.

It sounds complicated, but it sort of takes the approach of "everything should be a simple as possible, but no simpler." It just has enough indirectness to make it much less susceptible to "death spirals."

It differs from working for "the man" because you still decide what projects you want to work on and so forth. You are working for yourself, but the system (manager/monitors) is helping you keep on task in ways you have already decided you want to do.

Really, the manager can be considered an agent of your long term interests (i.e. your desire to finish your projects and otherwise get things done), helping you defeat your short term interests (which might be your love of sleeping in, watching TV or playing video games, or whatever it is you do when you procrastinate).

Get in touch if you want to join. I've got a few people but we could use a few more. We are starting a new group since I've sort of spun off the old one

Fascinating. Thank you for the super considerate response !

I might want to join as well! Lmk if there are open spots.

If I were in your shoes (and I've been at this exact stage), I would manually bill until I had enough clients to worry about it.

You can do a half and half approach. Let the user know that they will be invoiced, and a representative will reach out to take their payment information. For example, if I was using Stripe (the payment processor I'm familiar with), I would setup my register button to just send me an email with data that I could then enter into Stripe manually, ie. name, email address, etc. I wouldn't include CC info in this because I wouldn't want to deal with compliance. Since you told them to expect a call and you're invoicing them you've got a good reason to call. If you go this route let the user use your product right away. The other cool thing about this approach is that you can also start to build a rapport with your clients, which pays dividends when you want to solicit feedback.

I find that motivation really spikes when you start seeing sales and money rolling in.

Is billing really important for your project? like can you release and iterate?

The biggest mistake I did when I was working on a reasonably bigger project is that I wanted all modules to be in there to Go Live, to the point I ended up fixing browser related bugs before I ship assuming users will hate the product if I don't.

I never ended up launching it and since then, I stuck to the real MVP, as in the smallest thing I could ship. This helped me launch 2 side projects and got insane confidence boost.

I agree here, billing is not something I would put in an MVP. Odds are no one will sign up, or so few people will sign up that that billing code will just go to waste.

Bill manually for the first few customers.

I will second this. I recently replaced Google maps with Leaflet.js. And as soon as I had a beta ready, and I had updated sites with the new code, I found a better way to render the maps using Mapbox's own js libraries.

But it doesn't matter to anyone using it. They are just glad to be rid of Google maps, right now. If there's another small hurdle, they don't mind. And if I make improvements down the road, all the better.

You can always add the "convenience" of in-app billing later. A nice upgrade that will make your users happier. :)

Or, as I have often found, you may decide to _never_ put billing into your app. Why? Because you may learn that your users' are just fine with paying via your website instead. But you would only find this out by launching now, and talking with your clients.

For the first couple of customers just use Square / Stripe and do manual billing and invoicing.

I wanted to answer with the same theme - don't wait to have billing perfected on all edge cases, focus on covering the normal cases and release. You can always go back and fix those edge cases later, if they even ever happen to you.

More in general, when you have a mountain that looks too high to conquer, set a partial goal that looks achievable and only focus on that one, without thinking about the end goal until you reach the partial one. This helps a lot in my experience.

Get married, buy a house, have kids. Then you know you have to finish your work because you are responsible for others.

I'm 22 with a spouse and newborn son. I have to say that this has done more for my emotional and professional development than anything else could have at this point in my life.

Knowing my son will indirectly inherit my own habits has me focusing a lot on my productivity and accountability.

Enjoy your son, he will grow so fast. Spend moments you have with him totally focused on him, not on how to teach him to be productive, at least not in his early years. Teach him to explore, be curious and to love life. Productivity will come.

This is why I wrote 'indirectly'

The most valuable thing I can give him is passion. It's not my responsibility to direct it towards a preferred venue, rather to expose him to the world in a safe way that allows him to explore what makes him happy.

Accountability and candidness allows people to trust in you and forms the foundation of good leadership. Productivity allows one to drive their efforts towards their passion into tangible product or work produced.

If he can create value and convince others that he is consistent in his beliefs, then it is my hope that the world will allow him to grow to his fullest potential.

It's my hope that by observation of some of these core values being actively expressed by my own actions, it will make it easier for him to adopt them as he matures.

>Get married, buy a house, have kids. Then you know you have to finish your work because you are responsible for others.

That’s like shooting yourself in the leg because you want stronger arms, and putting yourself in a wheelchair will help with that.

You'd be surprised how great the motivation is when you have a kid. Especially the first years. And I was thinking just like you before taking this step.

Having children really changes you as an individual, especially as you start your family. Your priorities become different and I think both of you are correct in mentioning the motivation for providing and creating a safe environment for the family unit really arises in the individual, almost innately.

This. For me, I changed completely. Things I used to find stressful became water on a duck's back. Things I thought were catastrophic became small. When you bond with your baby, whatever was the most important thing to you gets supplanted. It sounds like that would negatively impact your performance but my performance improved. I became more consistent, more reliable.

My boss knew me for years before the birth of my children and has a few more years after to compare. He tells me he witnessed no less than a transformation.

I feel like I could have 'timed' it better. I feel I could have saved more and all of that. But then I wouldn't be the type of person who cared about those things until I became a father.

If you have a new marriage, children and a house you will have zero time for side projects. If you do spend all your time on side projects - you'll probably lose the marriage, children and house...

That's a good motivator up to a point. With some luck you might be able to more or less secure your family's future. Some people may have grander ambitions.

Worst advise, period.

Can you prove it? For starters, can you provide stats of "out of work" / "unemployed" people who are single vs have a family?

Release it NOW with a 30 day trial. Once someone signs up you have 30 days to complete the billing integration.

Hopefully you're using Stripe (if you can) check it out if you haven't.

Also keep it simple in the beginning just handle the recurring payments, you can do cancellations, refunds manually in the beginning.

Motivation is a personal topic but there seem to be certain themes. I can share mine. I have been a solo founder for a few months and this is something I am also facing every single day.

- Have something to be excited about. There is the rational reason to do something, but there is also something that is emotional and exciting about it. It could be about seeing your idea used by many people, or just the vision of building something real out there (which is mighty hard by itself). It could be even things that will happen later as a result of this project - may be it will open up new avenues for you to do other exciting things, live a different lifestyle, boost your confidence and so on. I call it the "emotional fingerprint" that we tend to get excited about. Identify the biggest 1-3 things that excite you greatly, even if they are really "embarrassing" to share with others. Keep them on the fore-front of your mind every day.

- Have a few people in your network or outside it who can care about either you or the project, and make sure you talk to them regularly. Your cheerleaders. Show them what you are doing, get their feedback, look for signals. It can feel like a waste of time as an engineer, but in my experience really helps me get outside my own head.

- See frustrations as learning. Think about the long haul. Is this just a one time project you're doing or do you want to be in it for the longer term, perhaps for multiple projects down the road? anything worthwhile you'll do will have frustrating or unexpected elements built in. How you deal with them also strengthens you for the long run.

One mental approach I apply is to treat each difficulty as a puzzle to be solved. Every time you solve one, you become better at solving similar puzzles in the future. It is tempting to want to know the answers in advance to everything. Forego that temptation and embrace "puzzle-solving" everyday to issues you have never encountered before. What I am implying is "gamifying" this whole process a little bit. If you have played frustrating puzzle games before, you can perhaps relate.

Just my 2 cents on this topic :)

yours is the startup founder version of Goethe's quote:

Every day we should hear at least one little song, read one good poem, see one exquisite picture, and, if possible, speak a few sensible words.

It's simple - stop trying to right prefect code because it doesn't exist. Next, go sell it. Building a company means creating a balance and from what I hear, it's one sided; software development.

Get people using it. Get people to give you feedback to drive the features, Engineers typically suck at sales and get caught up in building. Release it.

Your customers don't give a shit about the code. I know you do and I respect that, but release it. Make a few extra dollars and see how it goes.

What's the worse that can happen? People don't want to pay for it and you terminate the project? Or even worse, enough people want to pay for it and you invest more time into it :)

The customers care about the code when it breaks, overcharges them or keeps billing them, and then they sue me. I don't need to build perfect code, but I do need to make sure that something as important as this is done right the first time and doesn't hurt my customers. Customers are trusting me with the ability to charge them, that's something I won't take shortcuts on.

Do you have any customers yet?

I’d like to echo the comment from above: release now, and do billing manually. Once you start getting customers, you’ll be motivated to write a proper billing module.

The customer doesn't care about the code - they care about how the system functions. The code could look like shit, but if it "works" that's all they care about. There's a difference between how the code looks and how the application functions.

If it's necessary then motivation is irrelevant. You don't have to be motivated, you have to work.

Your problem isn't motivation, it's not understanding that not all work is, or needs to be, pleasant, or intrinsically enjoyable.

Look at what your goal is: if the result isn't motivating, then the unpleasant work isn't the issue, rather your goal.

This kind of attitude, diminishing of the person's feelings, isn't helping said person overcome their trouble with keeping working.

Not everyone's built with the kind of internal drive that makes you go for it without much hesitation. Some of us need a certain guidance, an understanding of the process.

In an ideal world, your message wouldn't even be mentioned. The one we're living in is far from ideal. We live in a complicated world, filled with norms, expectations, fears, desires, anxieties, and passions. Making sense of all that takes beyond picking the right goal.

I disagree. This doesn't "diminish the person's feelings", it's saying that feelings aren't always relevant. Not being motivated is part of life. If something must be done motivation (or its lack) doesn't matter. Sometimes the suck must be embraced, feelings be damned.

Exactly. There is no work with only enjoyable and fun parts. It's called work after all. I embrace these parts of a project by remembering that I will learn the most not by having fun but by wading through shit that leaves marks.

Maybe I'm just old and crusty, but I think motivation and passion are overrated. Just put your butt in the chair and do it. Passion and motivation are important, but no matter how passionate you are, you're eventually going to have lows that you're not going to get past unless you just slog through. That takes a certain amount of discipline.

This. Though I also may be old and crusty. Mark Twain said it nicely: "If you have to eat a frog, do it first thing in the morning. If you have to eat two, eat the bigger one first."

The longer you wait to do something you should but don't want to, the more difficult it will be to do. On top of that, you'll have the mental "weight" of knowing in the back of your mind it's sitting there, waiting for you. Best to just do it and get it out of the way.

Agreed. I heard Seth Godin say something like "When I need knee surgery, I don't give a shit of the surgeon is feeling 'authentic' in his job that day, I want him to be a PRO and fix my damn knee. I don't care how he feels!"

So I agree. However, I also think if you have the opportunity to move to a career you love you should do it. Not everyone has that opportunity, sounds like this guy might.

“The biggest challenge in business is not the competition, it’s what goes on inside your own head.” —-Barbara Corcoran

From my experience, getting to release, it’s like I feel like I’m going to fail. The product isn’t attractive. The buckets of money won’t fall from the sky.

And you know what, that’s 100% true.

Engineering is but a small piece of making a business. “Build it and they won’t come” is what a bad ass marketing guy I know would say. So the thing is, you will NEVER figure out how to shake money loose from other people until you put it out there. So you have some choices, accept that the next phase is not going to be easy, and push through to learn and become the same bad ass at company as you are at coding. Or rm -rf your codebase and go back to your job. Or waste even more time before making one choice or the other. Procrastination does not change the reality of having to make tough choices; it merely makes getting to the results on the other side come much later.

As a fellow bootstrapper, I feel your pain. Especially payment providers are a terrible part of working on an online app (in my case, I live my horrors with Braintree — I heard Stripe is better, but they won't sell to me, as my business is "based" (?) in one of the "non-supported" EU countries).

In my case, the worst parts are a) payment provider, b) invoicing. I think it's because I keep thinking of this work as time wasted with zero added value: I am not making my product better for my customers in any way.

The way I find motivation: I look at my MRR graph (think of an imaginary one if you don't have revenue yet) and consider my life goals: why am I doing this project? How will the success impact my life and that of my family? Will this work move me towards my goals?

Also, if your provider is Braintree, I have some bad news for you: there will be worse times in your future.

I'm actually using Stripe; it's pretty bad too, but I don't know much about Braintree since I generally avoid paypal at all costs so no idea if it's better or worse :)

What do you do to keep yourself motivated? Especially when you hit something you hate to work on but is necessary.

I don't really know how to tell you anything useful on this. A lot of my motivation seems to just be an intrinsic part of my personality. I don't generally have a hard time being motivated. I just love the process and act of building things.

Of course there are times when I hit the "schlep"[1] stuff, which is not as enjoyable. How I grind through that is just by reminding myself that it's inevitable and necessary, and that all the other hard work I put in will be worthless if I don't get this unpleasant stuff done and complete the project.

Lastly, and to be completely honest... as much as I enjoy building for the sake of building, I do also have financial goals. There are things I want to do, see, experience, etc., that require more money. And I see the projects I work on as a path to potentially being more wealthy than I am today. So while you may accuse me of being shallow, I do occasionally pick up an issue of Top Gear magazine, or Motor Trend, or whatever, and look at the cars I'd love to own one day, and remind myself "this is one of the reasons I work hard, and grind through the schleps". Or maybe it's a travel guide to some exotic locale I'd like to visit, or whatever.

And while it's (apparently) "politically incorrect" in this day and age to have, and openly acknowledge, a desire to attain significant wealth, I posit that there's nothing wrong with a drive to gain wealth, and to use that as a form of motivation.

So yeah, my motivation is a mixture of both intrinsic and extrinsic, but it's really more the former. I'd love building software even if I didn't get paid for it at all, and even if I weren't trying to build something to sell.

[1]: http://www.paulgraham.com/schlep.html

This seems more like eating broccoli than keeping up motivation. If that's the case then it's better to force feed yourself. Clear your schedule, pick a day, go into your /etc/hosts and block every other site that you don't need in order to finish your rewrite, drink a cup of coffee and then don't leave your seat except to go to the bathroom. If the work spills into the next day then so be it but get it done in one session. There is no easy way around working with code you hate. Some people say use moderation and do it slowly but dealing with badly cooked broccoli sucks. Shove it down your throat and finish with a chaser.

If you want it badly enough then just force it. The rewrite should only happen once.

Unless you absolutely need to integrate with the payment provider, release it and work on the payment integration after that.

I've been in the same position. For me, if I'm working on a substantial project solo, one great source of motivation is when people are using it, giving me feedback, etc. So when you have actual usage, some momentum, it's (generally) easier to keep going. The more time goes by without actually releasing something, the easier it is to lose momentum.

Also, if you really don't like a provider, it's generally not worth your time to use them. You will end up spending some time maintaining in the future too and you will resent it, so probably better to find something that's good to work with.

Intrinsic motivation is really hard - but getting positive feedback from your peers rocks - so just share it - I threw a link to a github repo out over the weekend just because, and ended up on the HN front page and nearly 400 stars. That simple act meant I now have a new side project near the top of my list that I was not expecting and you know what - it feels really nice - people liked it enough to say nice things and comment.

Just throw it out there and see what happens - you don't even need the billing. Just give us all a guest pass for a month - you might be pleasantly surprised.

I've drastically reduced the motivation required to complete projects.

I set daily goals at the start of the day, really small ones and then by the end of the day, I complete at least one of those goals and then that's it. It might take 20 minutes to an hour to add a bit of code that will go into the final feature.

Then I mark that I did that task and keep track of my "streak".

That's the thing that keeps me going. My streak is 13 days now, since the beginning of the year on my current project. I'm not going to break it now. It's less about the project and more about the streak.

I love it. Treat tasks like trying to beat my galaga score instead of like a mario stage to get to the end of.

For what it's worth, I totally agree with you. Payment providers assume that you spend ages understanding their implementation and mental model. I think the main problem is that everyone thinks it's boring, so no talented coders have written an api that abstracts all the finicky details away.

When it comes to motivation, I usually pick my tasks in such a way that I don't exhaust myself. Typically, I would push a daunting task until I have a really good day and feel ready for a new challenge.

Get feedback from someone, anyone.

Family, friend, partner, coworker, even random stranger at the bar or a meetup.

Showing what you've made to someone is so much different than trying it yourself.

* The strange UI choices you made will be pointed out

* You will feel embarrassed about the slow loading of something

* You will get questions that you never thought about, and questions you thought about but perhaps thought nobody else would care about.

In my case, I'll always get motivated to do something with a project after I show someone else.

disclosure: im an engine mechanic for a midsize chain of midwestern truck shops.

We dont per-say have projects, we have jobs (but theyre similar!) we took on overhauling every school bus for the largest city in the state. Its a tip to tail job that takes about 1500 hours per vehicle.

Our upholstery subcontractor sucks. They work largely for RV companies and either have a hard time procuring seat fabric, or a hard time hiring anyone who can reasonably upholster seats 8 hours a day. Theyre based out of florida and so arent used to working in cold midwest weather.

brake upgrades take ages because these are midsize trucks and we're going through tooling fast on turning rotors. management doesnt understand this at all, and so constantly drags their feet having to order new carbide inserts.

my motivation is for what comes after we're done. its the need at the end of the job that keeps me going. new steering, heaters, and seats all make for safer buses for kids and professional drivers. I guess find out what youre doing and why youre really doing it. put yourself in touch with the people who use this software and spend a day in their shoes.

Arnold Levine. My mentor. Died about ten years ago. Here's how he taught me to stay motivated, and I'm going to tell it the way he would want it told, it won't be PC.

Me: "I can do this anymore, I'm sick of it."

Him: "Really?".

Me: "Yeah, its mind numbing. I'm turning to jelly."

Him: (cold stare like he was about to murder me. 60 years of rage, booze, cigarettes, diabetes and disappointment bearing down on my through eyes that became dead in a flash).

Him: "If I put a fucking gun to your head and told you I'm gonna blow your brains all over this office could you keep going?

Me: (nervous laugh).

Him: (louder and angrier). "You think this is joke? You think I'm fucking kidding?"

Me: No. You're serious.

Him: That's right. Now shut the fuck up and keep working.

No, this wasn't abuse. It wasn't bullying. There was no insensitivity. I wasn't sure he wouldn't get violent in some way if I back talked. He was teaching me a lesson about strength and humility as I wrestled with my frustration and self-importance. There are a dozen stories like this from working with him, not one the same. I miss him. I loved the guy.

I should probably hang out with my angry chainsmoking bit-twiddling mentor more while he's still around. Telling people who "can" that they "should" is something where delivery makes all the difference. Those greybeards don't tolerate slacking or whining when it's business time, and when you've earned a smile for being clever, damn it's good. Also there are so many more nuances to the appropriate use of the word "fuck" I don't understand yet.

It's not so much the destination but how you get there. I can't recommend this method to anyone.

Seems like this is a common theme amongst people working on side projects. My 5c is that you do two things to get to release: 1) Cut down to all but the essential, think what really means Minimum, Viable and Product 2) Have a task board - its a good motivation to watch how you burn down through it 3) Keep your eye on the higher goal - the boring or hard parts are a means to an end here

As far as personal experience - took me 6 years to launch with the bulk happening in 6 months where I've decided I WILL LAUNCH FFS. Billing is a PITA and am actually dealing with it at this exact moment. It's crap, always will be, but my motivation is that this is what will aid making money which will keep the project alive, so yeah, means to an end. Lastly, I will launch if it kills me - I'm still kicking but have probably spent way to much time and nerves on some stuff.

I guess take it as a challenge and look at it like this: Only the ones that go through it all get to the end, all others just abandon it and fail. Be the one that sees it through.

> What do you do to keep yourself motivated? Especially when you hit something you hate to work on but is necessary.

A while back I read "Getting Things Done: The Art of Stress Free Productivity" [1], and though I'm not completely sold on his methodology, the author has a few ideas and techniques I really liked, that have helped me get motivated.

One of them is to figure out the next concrete, actionable task that needs to be done to make progress, and do that. Don't think about a million edge cases, or a big rewrite, but instead focus on the single edge case that's blocking you right now, or the first thing you need to do to start a rewrite, and then go do that smaller, specific thing.

It will feel good to have it done, and it'll motivate you to get to work on the next small step.


I'm not a persistent person and have generated tons of half baked prototypes. But throughout the years, I found myself improved in terms of side-project management, from not able to launch anything, to launch but abandon something, and to actively maintain a project and feel rewarding. I feel that I'm in a state that working on side-project has become my habit, instead of an impulsive spree. Every night, I spend 2 hours on it, otherwise, I have no better way to kill my time anyways.

What I learned is that focusing on short term goals, is better than thinking or designing for the far future. I use gitlab, and its issue board helps me organize the tasks. When I don't feel like working, like when I'm tired from work, I still spend time looking at the task board. I reorder the tasks based on their impacts and based on their difficulty. So that I can interleave the hard and the easy ones, and make sure I can always finish some tasks within 2 hours each day.

> What do you do to keep yourself motivated? Especially when you hit something you hate to work on but is necessary.

Refresh the end goal you're working towards in your mind. Re-establish your connection to it.

It's the end goal that you're working towards, and this (crap) next step is just a small part in the way of you getting there. :)

Saying this from the perspective of "Loss of motivation generally means you've forgotten or lost the emotional connection to your end goal".

Much of the time, if the end goal is really something you personally value, it shouldn't be too hard to re-establish the connection to it.

For me, it's mostly a case of needing to find a quiet place, then think of the goal, what it means to me, etc. Motivation seems to then spring forth fairly readily.

Only works (longer term) for goals I feel are really important (to me). For trivial stuff, trying to regain motivation like this just doesn't work. :)

The most helpful thing for me (after years of working on projects alone) was to find a partner!

It's hard to show up every day, by yourself. When there's no one to cheer you on and no one to be accountable to, it's easier to give up.

For years, I tried building projects on my own. But I had to limit myself because I didn't have the technical expertise to bring all my ideas to life.

Then I met Jon at XOXO festival.

Over the years, we became friends. We collaborated on a few projects. And then, we decided to work together on https://transistor.fm (a podcast hosting and analytics platform).

Jon is a gifted software developer. He has a good eye for design.

My expertise is in customer research, marketing, and product development.

Combined, we've been able to build Transistor into something much greater than we could have achieved on our own.

I just tell myself "this too shall pass" and carry on.

Not just dev projects, everything in life that I decide to do but in the thick of it start hating myself, I repeat those four words. It's usually when running or digging, physical stuff that starts to really suck halfway through.

I also think subjecting oneself to activities which really suck, physically difficult and painful things, and persevering through them, is generally helpful. It tempers oneself by conquering higher forms of suffering, no amount of poorly documented APIs can shine a light to a week of digging with a pickaxe and shovel.

Just getting to being able to run 4+ miles teaches some useful lessons IMO. There's an entire headspace to be explored in doing endurance activities that probably confers benefits everywhere in life, not even considering the exercise aspect.

How I deal with it: Make a list of things to be done, and a schedule. Do the things. Schedule in time off, relaxation, distraction, any of it. And allow enough "give" to take moments if the head-against-wall moments get too much at a moment.

But always keep to the schedule. Although a hint : if you need to work overtime to fit the plan, the plan is bad and needs to be fixed. (although "need more people" is an acceptable excuse, and can be very enjoyable if you CAN get more people and if it works, it's an acceptable answer to fixing plan too)

I've worked several jobs through like this (all successful - moving on is good though too if you're doing the same frustrating thing too long). And I don't regret the work I did because in the long run the annoying parts were resolved.

First, make sure each task you're doing fits into a conceptually coherent whole. [0] This saves you time and effort learning that it isn't from the customer feedback. This also creates a motivational point beyond "I need this to make monies", since now building the software means you get to see an abstract philosophy come alive.

Second, design a schedule for yourself that both lets you take out and put away the project. If you aren't hugely inclined to solve programming puzzles that are created by other people's code, it's understandable; the trick is in making it not be the number one priority(because a boring task like this is no longer the fun learning stage of coding), but rather to make it one of many chores on your list. You have a household; there is always something to maintain in it, whether it's dry shoe leather, mildew on the walls, a load of laundry. Allocate 10 minutes each hour to that stuff, then return to the coding with the momentum from that. Huge blocks of screen time never helped anyone. (And yes, overall health matters. Getting more sleep, exercise, correcting a nutritional deficiency, can all be huge for motivation.)

During the coding, aim to finish it badly(placeholder level) and then go back and fix it in steps. These tasks get worse when you have to juggle a whole pile of new abstractions all at once: skip to a preset result and then work backwards from that into something that is configurable. Good code doesn't come out of your forehead fully formed, it takes some iteration.

If you don't have an estimate for how long anything takes, that's also a demotivator. You can calibrate one by finding a similar project, getting its start-to-release dates, and working backwards to get milestone dates. Don't worry about time per task, worry about the overall product coming into shape. Placeholders as milestone goals can help hugely in getting you to dig into the design and make it its best.

[0] http://ludamix.com/dive/

Motivation is directly linked to how much choice we have over it.

If we absolutely have to do that billing module, it's very demotivating. But if we, by choice, choose to do the billing module, it's much more motivating.

This is where Scrum either succeeds or fails. If a scrum master just decides to assign tasks for the week, the people doing them will be much less motivated. But scrum tricks the people doing the work into pulling it from the backlog, and choosing to work on it.

So somehow, you have to give yourself control over the project. Don't tell yourself you have to get it done. Look at it as a puzzle you want to solve, one where the documentation gives you hints, but not the solution. Be a hacker.

> it's to the point where I'm questioning if I even want to be in this industry (although to be fair, I've been questioning that since before I got into software). What do you do to keep yourself motivated? Especially when you hit something you hate to work on but is necessary.

I sympathize with you greatly actually. I used to seriously hate work. Then one day I was fired (or more precisely I didn't get past the trial period) and unemployed. After that point I realized as much as I might dislike my job, I dislike it a lot less than the stress of being unemployed, going further and further into debt, and wondering how I can get a job.

Regarding payments I'd suggest you integrate with something that handles all the tax compliance responsibilities and invoicing for you. You can relatively easily do it yourself with a few weekends work, but it's not really worth it when you are just getting started (especially as you don't know if your business will take off).

I went the hard route and integrated Stripe from the get go, but am now planning to move to Paddle as the amount of work I have to do to enter invoices into my accountants system each month isn't worth it for what I'm making right now.

Paddle looks really nice actually; switching providers probably won't help with the motivation factor, and it looks like they don't provide HTTP API SDKs (that's a lot of acronyms, sorry) in any language, so it would be a bit more work to use, not to mention that it's a lot more expensive, but I wonder if it's worth it either way? You've got me curious, I'll have to look into it a bit. Thanks.

eww, that being said, their API appears to use exclusively POST requests for everything (even things where you're getting something) and puts auth in the body. I guess it's no big deal, but I'm not sure how I feel about that. It's harder with my HTTP library because I can't abstract away the post parameters as easily as I can headers (without doing unnecessary decoding then re-encoding them), but that's arguably a problem with my HTTP library, not Paddle. Still, feels different to everything else, which is odd.

Upon further investigation, nothing about their API is consistent or well done (and/or the docs are terrible and incomplete). I understand that this is a small company, but this level of inattention to detail is unacceptable. What are they doing with my customers financial data if they can't even get a simple API right? Even if I did decide to use them, the docs are so incomplete I'm not sure that I could actually build an integration without reverse engineering what half these values can be, or guessing at parameters that are used in examples but left out of the actual list (where a list even exists), etc.

I split time. I have things I like to do and things I have to do. I often keep a couple projects going at a time. I make a reasonable milestone and do the drudgery in the morning until I hit it (often midday, sometimes later, sometimes earlier), then I give myself the rest of the day for fun. This can be researching new tech, working on a project I actually enjoy, etc. I'm only worth a half-day of sucky work each day anyways, whether I self-motivate or languish, so might as well knock it out.

> What do you do to keep yourself motivated? Especially when you hit something, you hate to work on but is necessary.

In addition to other recommendations,

Learn the basics of Product Design and UX Design. It is a useful skill and a nice addition for you if you are building something. It helps you in prioritization, problem mapping, writing proper user stories, and teaches you to think about user journey and define project goals.

And by having those, you will feel closer to the end user which gives you the motivation to work on the project.

Yes, been there. A few times.

Payment processors are awful to work with... and it's sometimes tricky to test with.

They really do make you question your desire to remain on this planet, let alone continue to work on it!

I've found that more documentation they provide just adds to the confusion and contradictions. Sometimes contacting support helps... more often than not, they'll provide you with a key ingredient that isn't even in the documentation!

(failing that, for 1.0 just go for a Paypal button)

I should try contacting support; thanks. Some of the weird things I've run into are so poorly thought out that I can't believe they'd actually be an intentional part of their product. I've talked to some developers on their IRC channel, but typically (and this is something I strive as hard as possible not to do on my own projects), they were just so used to it that they couldn't understand why anyone wouldn't know how parts of the system worked even if it wasn't documented.

I've worked with quite a few payments platforms over my career. Most of them are terrible, but even the good ones require adopting their conceptual model. Sometimes that can require some adjustment, especially if you already have preconceived notions of how you want billing to work.

Example: I was dumbfounded that Stripe lets you update a balance, but offers no way to do it atomically. Support was clueless. However, on the IRC channel someone suggested creating invoices instead of bumping the balance, which in retrospect is a much better idea than maintaining the history in my database (although it ties me deeper to their system).

You really have to "bend like a reed" and conform to their patterns. And whatever you do, don't try to create an abstraction across multiple billing systems until after you've built up some expertise.

I think I am actually using it in the way it's meant to be used, is the sad thing. I can't quite get a good read on that from their developers though, so it's hard to tell.

This always helped me: Baby steps over time walk a mile.

Just work on a something every day. It can be small or big it doesn't matter just make progress. Over time you will see how much you have accomplished.

Instead of thinking that you have to write the entire billing functionality, think I just need to get an API token from the server today, fix a typo or whatever... and if you aren't feeling motivated to continue after after the small task be done for the day.

When I read "Go SDK" I wonder if there are better SDKs in other languages from this provider. I often find that although they advertise having 10 different SDKs in reality only one or two actually work while others are just a badly maintained afterthought. Happens a lot to us .NET users. I find it better to write the code parts that deal with the SDK in one of the premier languages and then integrate this into my code.

The language (or any of the specific problems really) doesn't really matter, I probably shouldn't have mentioned it. Realistically most (though not all) of the problems are with their platform and it makes it really hard for me to want to continue using it, but I haven't found an alternative and even if I did I'm so demotivated at this point I don't know that I'd even want to strip it all out and start over.

Usually I just write down the easiest possible tasks that I know I can get done, and if that fails, I ask colleagues and mentors for ideas. Ask yourself what's an easy way to get started? Do you need to use a small carrot to reward yourself? Can you do it at a certain time of day under certain conditions? Can you collaborate with someone else to do the things you really don't want to?

License the core to a saas company to pay per seat and let them handle billing.

Personally, I like micro-rewards for getting little tasks done. Things like, spending some time on a side project after doing some house chores, or grabbing a brewski after doing taxes. Little things. It could help if it is compatible with your voice-in-head firmware.

How do you go about doing this (licensing the core to another company)? Do you call up SaaS companies in the phone book until the receptionist connects you with the VP of New Indie Product Acquisition?

Motivation is a highly personal thing, but perhaps I can help you with that hurdle.

Have you explored https://www.pubilling.io/ or the open-source http://killbill.io/?

It’s been said a few times now but either launch without billing or launch with manual billing. Set up a Freshbooks account and send people a recurring invoice every month. It only takes a minute to setup each user, you can launch without rewriting the billing side, and you can still get paid.

What is the purpose of your side project? Mine is to make me happy. If that is the same as yours, then take whichever route makes you happy. Are you more happy launching an “imperfect” product. Or are you more happy striking for that “perfect” solution.

IMHO a side project should make you happy.

I recently found a workflow that really helps me stay on track: blog piece-by-piece as I'm working on the project. My current one is "A month of React Native", where I'm learning RN and building my first mobile app.

This blog-driven development works pretty well :)

For me personally, the only reason for doing something is always that if it is useful for others (solves a problem, creates real value in the world) it worth doing. Extra points if I could make money with it :). If not, I was not able to continue working on it.

If you hate working with a specific provider, then don't. It doesn't matter if everyone else loves them if it isn't working for you. Go find someone you do like, that meets your requirements, and you will likely re-gain motivation in the process.

The problem is that as far as I can tell, they really are the easiest to use (it is Stripe, I didn't want to bash on them but I guess it's important if this veers into recommendations). I don't have a particularly complicated setup, but basically every little thing is impossible (just stupid stuff like if I cancel the last item on a subscription it will fail instead of canceling the subscription, so I always have to make an API call to check if the subscription only has one item, and if so cancel that, and if not cancel the specific item the user is dropping. It's insanely irritating the amount of weird little workarounds I have to do for oddities in the API, or where one API concept isn't consistent with another, etc.

If there's something out there that's simpler and has documentation that isn't constantly just wrong, I'd love to hear about it.

Just do at least one commit every day. Look at your github profile and try and fill every daily commit block. You can commit the simplest thing possible. But once you start, you will likely add more than a simple commit just to fill in the daily box.

OP: Hi again all; I obviously can't reply to every single comment, but I just wanted to say thanks for all the feedback (both on technical matters and broader burnout concerns). It's been very helpful as I try to decide what I want to do.

I quit my job and used my savings as a personal runway.

Self published my first book: https://www.theangulartutorial.org/

Are you in a position to delegate or outsource the tedious parts?

No, unfortunately not.

Checklists. I break down what I need to do into smaller tasks and check them off.

It works wonders when you have frequent drudgery and clueless requests as part of your job description.

The resistance stage that you've hit is always a killer. It leaves more projects like yours dead before they're finished than anything else. The problem with replying to this, is the answer is subjective and will vary person to person. We all use different methods to motivate.

Sometimes I'll re-read a book. Masters of Doom is motivational for me as one example.

Sometimes I'll take a long'ish break (weeks) and teach myself something new just purely for fun. Experiment with something, that may or may not relate to the project. I divert my brain to an enjoyable stretch of time, a vacation, to prepare it for the final forced crunch of work.

I recently blew off a month and did almost nothing, when I could have completed what I'm working on. I got to the 85% finished line and hit hard resistance mentally. Some of that is feeling exhausted (it can feel like it sneaks up on you all at once), a lot of it is arriving at a large batch of work that I really don't enjoy doing. Combine those two and your brain puts on a yellow vest and begins protesting the longer you persist.

I've found that after taking a break, controlled anger is extremely effective as a helper for a final push over the line. That is, getting pissed off about the situation of having allowed myself to lose momentum and burn time rather than finishing something that is ~85-90% done and could have already been completed if I had simply maintained a steady momentum. I direct that anger in a focused manner as a big punch at the project that puts me over the remaining hurdle/s. It gets me into a mindset where I can just grit my teeth and dig through whatever shit I have to get done. Then the final 2-3% is usually just basic clean-up on loose ends or polish, truly trivial work.

Some might suggest that anger is always a negative. I strongly disagree with that. I think it's highly useful when channeled properly (never at others, and never in a serious self-harm form) and so long as it's not a common occurance during a project. It's critical to differentiate between using anger to overcome a self-challenge you're certain that you want to overcome, versus working on something you don't actually want to do. And to be clear, I'm not talking about rage or anything so dramatic. Rather, an internal expression of: damnit, fuck this, I'm going to finish it and nothing is going to stop me (except in my head it's all capitalized).

I always try to remind myself that the thing I'm building, I really, really want to see it live. I want to see it exist in the world, to see other people get value out of it. I set out on the journey for a reason.

Thanks for the advice; there's some really good stuff in here.

Write a diary every day. Serves as a compass. It's far more easy to write down a few lines of thoughts and it's fun to look back.

Don't take self help advice from anyone who isn't successful. Not you guys of course. Im sure you're all millionaires.

Discipline > motivation. There are lots of good texts about it, better than I can summarize. Google discipline vs motivation.

The direct deposit notification I get every other Friday works wonders. If it was fun they wouldn't pay people to do it.

Break things down into smaller steps, and take it one step at a time.

Well this might actually answer something you deeply dislike: The shitty SDK problem.

I've worked on way, way too many credit card apps that charged money for other people (two invoicing platforms, one ticketing site, one photo social network) and the myriad of issues with credit cards and fraud and other problems have led me to the conclusion that unless you have a really, really good reason to do otherwise it is better to either:

1. Outsource this to a better API that takes a percent cut, but handles all the edge-cases like refunds and GDPR compliance for you.

2. If that doesn't work, and you're stuck with a shitty SDK, it's easier to just use a better supported language. (Even a general purpose library like Active Merchant.) It's trivial to create a shim for this and the separation is really clean. Why bother with Go if it's hard? For now just hack it together.

Maybe get a friend who delights in working with payment APIs?

you could stall and add a "go premium" button and track how many people click it instead of jumping straight to monetization

By applying the Agile methodology. I just stick it out there in whatever state and let people have access.

That’s not really what agile is about. It is about early feedback, so yes the customer might see an incomplete product. This is similar to watching a bespoke house being built. As long as they wear a hard hat, it’s ok for the client to inspect the footings.

Hang on, I don’t understand the distinction you’re making. I definitely think the customer should see it as soon as they can they see something.

The distinction is just the communication. If they know it won’t work but it’s a prototype for feedback then that is agile.

If they think they are getting a full working product that’s .... something else!

Oh right. Fair enough. Yeah, I assumed that was implicit. Good call out.

This is exactly why I hate Agile garbage. Just about everywhere I've ever worked has applied "agile" and all it's lead to is them building crap software quickly. I'm all for releasing early and often, but not "in whatever state". Have some pride and build good, well tested software.

I assume this is side project stuff. I don’t have a high standard for those. Not very prideful as an individual, tbh.

I’m not sure from the poster’s description it’s just a hobby project. They evidently want to charge their customers money, so there needs to be some level of quality in order for that to have a chance of working.

First off this sounds much deeper than just avoiding a payment integration, it sounds like you are questioning your whole career...? You'll have to pay me for that advice. LOL

You are not your own servant, negotiate with yourself. - Jordan Peterson

Why am I avoiding the task? How can I simplify the task? What would it take to accomplish the task? How can I incentivize the task? Make a deal with yourself.

Whether it's the stack of bills that accumulate on my desk or the dev task I'm avoiding I ask myself these questions. Most of the time I'm avoiding some sort of responsibility that I've told myself isn't too important, it can wait because I have more important things todo. That's a lie, it wouldn't be weighing on my mind or take up space on my desk if it wasn't important. So I negotiate, if I devote two hours and start at 3pm I'll call it quits around 5pm to head home and hang out with my family. Then 5pm roles around and you reassess the problem to make another negotiation. This time your negotiation is a little more specific because you have a better understanding of the responsibility. Then someday your task will be complete and you'll be more efficient, more educated, and more prepared for the next. Much easier said than done.

do something else productive while your procrastinating on this task.

I set micro-goals.

Well you should focus on the end, think about what it'll be like when it is done. Stop the internal dialogue of "I hate doing X" and instead say "I can't wait to see this out in the wild" and know this is a single step closer to that.

I was going to ask why you 'hate' the payment provider but I can see it's because their SDK is poorly documented. So the truth is more like "I'm frustrated because I can not make steady progress, because I have to stop to find a workaround for yet another edge case". So you can not get into a flow. you're just frustrated.

I suggest you stop coding all together and master that SDK (with all of its shortcomings). Then you'll have a level of competency that will help you move forward. I question that this payment provider is 'the easiest thing' if they are that hard to work with. Are you using Stripe? They are actually very good.

One more thing, this is a bit revealing I think: "I'm questioning if I even want to be in this industry"

Yeah, that's the main problem right there, here's why.

Let's say you needed to figure out this exact payment processor with their shitty Go API in order to impress a hot girl.

Let me tell you something, I have pulled off MIRACLES to impress women. I got us behind the scenes at a Pro Hockey game once to impress a girl. I got us in the captains chair AND the engine room on a cruise ship once to impress a girl.

You are never going to be intrinsically motivated on this project and that's the main problem. By the time you had to motivate yourself enough times to post to HN about it, you are about worn out already.

Life is too short man. STOP. Think about what you would LOVE to do and go do that.

Ask your brain very, very good questions and you will be surprised at how amazing your answers are. Write, rewrite and edit your questions until they are perfect, then ask yourself that question.

Get specific. I'm talking like "How can I have financially rewarding, fulfilling, secure work that I love to do where I make a massive impact, become an expert in my field, feel significant with an impressive title, unlimited growth and enjoy it the whole way with no regrets?"

Ask yourself a specific question like that and I promise you your brain will come up with an answer.

Then, go do that.

If you were doing that, you'd have mastered this problem by now.

If you can't think that globally right now, use this technique to get past this one problem.

Make it a huge ask: "How can I finish this billing integration, have fun the whole time while writing clean, error free, standards compliant code and have it done by the end of January?" Your brain will tell you.

Trust yourself.

Last thing here: If you 'think' you 'might' want to get out of this field, then you already know you should be out.

You can code. Coding in ANY job is a superpower.

Go find something else to love.

It's out there.

You don't need 'motivation' to put one foot after the next.

It's 99% 'perspiration', remember?

If you care about the outcome (whatever it is) then that should be enough 'motivation' to do the 99%. You're a professional, right?

If you want a 'purely motivational' project then do something that's simply that: games, writing/playing music, reading etc., where 'it doesn't matter'.

Instead of trying to 'find motivation', literally just sit down and start working out a little plan. Having a plan and a path forward might provide some clarity to the outcome, so you can 'see the light at the end'. I'll bet that you don't have trouble 'working on it' once you actually start 'working on it'.

It's like working out at the gym: once you are there, the workout is not so hard. It's just getting there that's sometimes tricky.

So just put one foot after the next with a little plan in mind and you'll be there in no time.

Great advice for industrial lifting robots. For actual living human beings, this is nowhere near the mark. Most people are terrible at self-motivation outside of traditional structures that keep them accountable. Many people even struggle to remain productive at the office since there's plenty of procrastination slack there too to hang yourself with.

There's a trick to this.

This only works for those who want to accept it. Some may find freedom in being elites, not being restrained by motivation.

But others may enjoy the thrill of the hunt. So being separated from the pain and thrill of the work is a big loss to them.

That's a really interesting point.

But if you're going to do something big, that takes quite some time, you're going to have to be the former, not the later.

Some things are not good for the adrenaline seekers.

> Ask HN:

Maybe that is the issue. You are operating in a world where you think there are answers to things that will make them easier. You need to move away from that thinking entirely. What happens is your brain is not trained to enjoy the challenge of the undesirable things that you will need to do to succeed. There will not always be a trick or a tip and most certainly a big advantage if you can simply figure out the answer all on your own. That will then motivate you in future situations. [1]

[1] Advice, mine, against my advice ironically.

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