DEV Community

Discussion on: How do you stay motivated?

Collapse
 
rabraham profile image
Rajiv Abraham • Edited

I have a 'lifetime' side project. It's ambitious and I can't stop thinking about it. No matter what happens, whether I pass or fail coding interviews, get rejected for lack of experience or no buzz words in my resume, whether I fear I'm too old or slow in thinking.... the beauty and power in the my 'lifetime' idea keeps me going.
I was having difficulty waking up. I now work on my side project first thing in the morning. Wake up pretty quickly now for if I don't wake up, then I don't get to work on my side project :)
if I have an interview which didn't go well, I'll work on my side project after for an hour.

Calling it a side project disrespects it in a way. I think it's my 'life-giving' project :)

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

Great, what is it about then?

Collapse
 
rabraham profile image
Rajiv Abraham

Thanks Max, for your interest :).

I desire a library which will allow me to succinctly capture the business requirements in an executable manner. I'm tired of writing the same code again and again in 100 different ways and feeling this spiderweb of discomfort and boredom and not knowing how to improve my code, capture the common pieces. Some people call it 'accidental complexity'[2] vs 'essential complexity' i.e. business requirements.

What do executable business requirements look like? One approach is Datalog: a declarative(like SQL + recursion) logic language where you express business rules and let the engine figure out your solution. You can see an example here[1].

Datalog and it's derivative are already popular in the Clojure world(Datomic/Datahike/DataScript). It's used in production, so I'm not worried about it not working.

That's great but I want a language that can capture almost all "business" requirements: tax rules, distributed systems, analytics, machine learning algorithms.

For that, we need to explicitly capture time in our specifications :). Rajiv was hungry at time t, Rajiv ate strawberries at time t+1, Rajiv is not hungry at time t+2.

So, since you kindly asked, my project is Mercylog(github.com/RAbraham/mercylog), a Python library planning to unify three different projects which explicitly capture time.

Like I said, it's ambitious but if it wasn't, would I wake up early as I need all the time I can get ... if I get rejected in interviews for some coding puzzle, this thing is computer science heavy and I will do it :).

I'm an average guy but my projects don't need to be average ;)

--
[1] - dev.to/rabraham/introduction-to-da...
[2] - curtclifton.net/papers/MoseleyMark...

Thread Thread
 
steelwolf180 profile image
Max Ong Zong Bao

It's not really the same code instead your using it in a different context, uses cases, constraints & organisation culture. As the saying goes "if you view the world as a hammer everything looks like a nail to you".

Which is why I think your approach might be shrew towards the computer science lens and might be neglecting different aspects of mental models associated in building software. My suggestion is looking at design systems as the basis for your project instead.

Thread Thread
 
rabraham profile image
Rajiv Abraham

Thanks Max, will check it out :).

Collapse
 
ben profile image
Ben Halpern

It's a different thing I think, but noticing that I sort of just got demotivated and let good projects fall by the wayside helped me launch what eventually became DEV. I told myself I wouldn't stop working on it for ten years, regardless of how successful or unsuccessful it was. I just thought I gave up on other things too soon.

Anyway, it's been quite successful and I'm happy I gave myself that rule.

Collapse
 
rabraham profile image
Rajiv Abraham

I agree about the ten year rule of thumb. It's a nice way to prioritize. I had the same problem too in a different manner. So many ideas that inspire me. I just had to choose and commit.

Collapse
 
rabraham profile image
Rajiv Abraham

It's successful indeed :). Thank you for sticking through. Dev.to is a force multiplier :)