I intentionally framed the problems I'm tackling in a way that resonates with a wide spectrum of people, so that I can get a variety of answers and work with anything that resonates well with me. In this process, I guess I didn't press hard on how debilitating executive dysfunction has been for my work (and life in general - story for another time) and I apologize for my assumption but I guess since you're neurotypical there's no way I can actually make you really understand the difference between the amount of energy and willpower required to execute on these tasks/planning/etc. I am formally diagnosed and have been on medicines in the past and the productivity difference and confidence in my abilities with and without medicines is day and night.
To provide a similar real world analogy that has potential to resonate with you: on medicines that work well with me, my core thoughts works as if a car is being driven on a freeway with properly defined rules and regulations, along with lots of other cars following the same rules. Without those medications, it's basically free for all, where there are absolutely no rules and regulations and anyone can drive anyway on that freeway. Sure, there's still a chance that every car reaches its destination safe and sound, but the amount of mental gymnastics needed at every point of time without those inbuilt rules in place is staggeringly exhausting.
This has been my life at work every day, because I have consciously kept myself away from medication for a variety of reasons. This post is an attempt to learn more of these structures and hopefully with enough practice, I'll become efficient in utilizing these structures so much so that it requires less effort and latency to maintain and execute them on a daily basis.
> This has been my life at work every day, because I have consciously kept myself away from medication for a variety of reasons.
This doesn't make any sense to me, especially in light of your traffic analogy. I have ADHD as well and getting medicated has been probably one of the most impactful things that I've ever done for myself. I'm very curious: why would you want to avoid something that's so helpful?
> This post is an attempt to learn more of these structures and hopefully with enough practice, I'll become efficient in utilizing these structures so much so that it requires less effort and latency to maintain and execute them on a daily basis.
Structure and process only go so far if your brain chemistry is fighting you. If you want to lose weight, diet AND exercise is the solution. If you want to regain executive function, IMO, medication AND processes are the way.
To answer your original question: most of the processes that I have are based on distrust of my brain. Therefore, most of my processes for getting things done rely on getting things out of my head (a la GTD, but without so much accounting). Things and Obsidian represent the bulk of my toolset. In particular: I have a pretty specific workflow for capturing stuff that I want to read later + a template that results in a lot of notes being taken from any given source material. In order for an article (or whatever) to get into my system, it has to be worth the effort to fill out the template + take lots of notes. That's been a good filter for me because my previous tendencies were to read ALL the things. I process my email and Things inboxes as often as needed, but at a minimum, once per week. Getting to Inbox Zero once per week is a necessity for me or I start having anxiety about the stuff that's in my inbox that I might have forgotten about. For email, I unsubscribe from as much as possible, delete the bulk mail stuff, archive things that I'm directly involved in, and capture any tasks in my Things inbox.
Then, Inbox Zero in Things is simply making sure that each task is actionable and has relevant context ("Fix issue #1234", "call so and so at xxx-xxx-xxxx to talk about xyz", etc) and then sorting it into the appropriate area of responsibility and/or project. I don't do anything with tags or anything like that. Once per week, I go through all of my Things lists and make sure that everything in there is still relevant (and delete what isn't), assign a "When" value for things that I'd like to do this week on some particular day, and assign a "Deadline" value for things that ABSOLUTELY MUST get done this week. If I have to reschedule the nice to haves, it's not a big deal.
> It becomes exponentially tougher for me once it goes beyond 2 work items.
Don't take on more than two work items at a time. If there are more, they go in a queue. You can't be actively working on more than one or two at a time anyway.
> it becomes overwhelmingly difficult to focus on my subproject without trying to understand everything it touches upon.
So don't do that. Embrace selective ignorance. Learn what you need to learn when you need to learn it and no sooner.
> There are new terms, new things very slightly unrelated to my smaller project at hand that I don't know no matter how much I learn.
Ask about these and write them down somewhere. If someone is using a term that you're unfamiliar with, politely interrupt them and ask for clarification so that the conversation is valuable to you. Start a wiki page or a gist or whatever that just lists the terms that are relevant in your organization.
> Once I get started on any task, it takes a while for me to get going, and even after finishing it up, it takes a while to start on another task as well.
This is executive dysfunction. Medication helps here.
> But when the project involves interacting with multiple stakeholders in an async manner, it gets split into tens of small units requiring immense willpower to start and stop.
Schedule a recurring check-in with these stakeholders and hold all business until the check-in. Recurring meetings suck, but you have to communicate, so you might as well consolidate all of the communication into a timeslot that works for you. Social pressure (in this case, to join a meeting and use the time productively) can be a great tool to use. You can do this with programming too: pair program with somebody (especially if you know of another person on your team who has ADHD -- you can help each other by creating social pressure to perform).
> This problem is easily avoidable at junior/mid level engineer, but at senior level these are prerequisite rather than a choice.
This is not necessarily true. There are many organizations where stakeholder coordination can be handled by somebody who isn't expected to be writing code.
> But at senior level and above, most if not all software companies require work that's less research/depth in nature and more planning/organizing/breadth in nature.
This is also not necessarily true. There are organizations where senior engineer != junior management.
Can you share your experience on what worked/didn't work for you (medical and non-medical) and why?
I ask 'why' as most ADD/ADHD people have similar symptoms, but their root cause can vary. Your answer can give insights to some of us out here!
There is no magic cure, I still struggle with it. But it's easier than before, I found medication helps but ONLY if you have it reviewed regularly. Seeing someone to discuss issues with is very helpful. I see a guy who isn't a medical professional but is older and has the condition himself - that's incredibly helpful :-)
Probably less helpful to others is my supportive wife. I probably drive her to distraction at times, which feels awful as I don't mean to. But she forgives me and ensures I don't forget to take my medicine, which is unbelievably important. That's obviously not helpful if you aren't in a significant relationship though.
Wish I had more words of wisdom. I'm still working it all out myself to be honest. I think it's a lifetime struggle, but worthwhile fighting.
Excellent writeup. Just one point that I disagree on is the Shipping price split up. I tend to look for other sellers when I see one with paid shipping, and tend to favour free shipping sellers more.
- If you are combining a discount with the product, and mention a shipping charge, the discount registers as a false discount ('He is just shifting costs through shipping split')
- Maybe it registers as more of mental processing (X$ + Y$ needs more time to process than Z$)
- Sometimes, it is human nature to be greedy, and look for best value possible. Seeing a shipping cost feels like seller is not 100% working for the customer, or we just become plain greedy, that why should someone else get a part of the price.
From what I could understand from the document, isn't ASLR along with NX a formidable defence?
We need an address for gadgets to execute, but with ASLR enabled we cannot run these gadgets at all.
Can somebody elaborate on this?
It's common for many libraries to not opt-in to ASLR (since it requires them to be compiled as position-independent), and I don't believe ASLR applies to the program's own code.
To provide a similar real world analogy that has potential to resonate with you: on medicines that work well with me, my core thoughts works as if a car is being driven on a freeway with properly defined rules and regulations, along with lots of other cars following the same rules. Without those medications, it's basically free for all, where there are absolutely no rules and regulations and anyone can drive anyway on that freeway. Sure, there's still a chance that every car reaches its destination safe and sound, but the amount of mental gymnastics needed at every point of time without those inbuilt rules in place is staggeringly exhausting.
This has been my life at work every day, because I have consciously kept myself away from medication for a variety of reasons. This post is an attempt to learn more of these structures and hopefully with enough practice, I'll become efficient in utilizing these structures so much so that it requires less effort and latency to maintain and execute them on a daily basis.