64 karma · joined February 8, 2017
I’m a software engineer who fancies herself as a systems level thinker. I've spent the last couple years thinking about how we might apply systems level thinking and broad engineering techniques from all disciplines, not just software, to daily in-person level big societal issues like justice, ethics, and the engineering of long-term dignity for people within social systems, not just those at the top and middles, but all.
I’ve written up a kind of exploratory “design doc” that asks a lot of questions and attempts to answer them in a cohesive and robust, fault tolerant, and evolving way.
Things like:
* What if we treated dignity of living things the same way we treat uptime, resilience, maintainability?
* What if suffering and despair are treated as bugs, failing test cases, or missing requirements?
* What if the feedback loops, transparency of design and changes, and observability were baked-in and applied to how the system handles injustice and human suffering?
Could we build anti-fragile, renewable, self-healing societal structures that expect conflict, drift, and failure. Ones that are engineered to withstand and correct without collapse, but prepared to dismantle and renew healthily, like a phoenix, not with violence, but with shared vision and tooling that honors both the facts of the injustices and validates the emotions while looking forward?
The idea is currently called Radical Wokeness, which I know may cause an immediate visceral reaction in some. It is explicitly not radical in the idea of extremism, rather in the depth of its vison and hope. It is radical like radical openness or other concepts in mental health are. It is not meant as a political label or even to represent any ideology or side of any political discussion. It fundamentally wants to shift the conversations politicians are having. It believes that politics are a tool by an unjust system to pretend work is being done to repair harms, instead of actually meaningfully doing the work and engineering to solve the real issues. It’s a moral architecture pattern, informed by up to date research on mental health, robust system design, and healthy conflict resolution. It honors both the failures and successes of past systems, while working to incorporate the inherent wisdoms found in many of them, that were unfortunately twisted or decayed to become harmful. It is a system that refuse to make cruelty invisible, and design for care and correction as a core function. To place back into design the implied system requirements for all things that need to be there to serve societies and give dignity to all life.
I’d love feedback in any form. Critiques, pushback, or additions from people who care about systems, complexity, and ethical design. I wrote the article with the idea of explaining what, how, why, and my approach and mindset, as a primer to help people easily find their way into the document and comprehend it.
I want to also expressly admit that I used an LLM to get help making it. I never let it generate things. I only used it to help anaylze and explain and educate me in an attempt to be sure the language is coherent and there are no critical important avenues I accidentally missed. I am not an expert in all or even most fields. This is a best attempt and I'm asking here, to get help from some of the greatest minds the world has to offer, because LLMs are cool and a good tool, but even when using it to be socratic and demanding it back up its suggestions, it is still a flawed tool, limited by its user.
Thank you for reading and I wish nothing but good for all of you!
> If you liked that commit don't forget to merge in that PR and smash that follow button!
Edit: I had the the percentages backwards, 70% are unemployed and 50% drop out, not the other way around as I had written.
Information taken from https://www.nfb.org/images/nfb/documents/pdf/braille_literac...
I say early facebook cause I feel that doing a login, and feed page, and allowing status updates, friends search and confirmation, and a profile page with photo uploads to be a pretty good intro stack.
That said for a new language I ALWAYS look for a modern koans exercise to do. Some langs have them, some don't.
The first time I was fired it was entirely 100% my fault. I was a practicing alcoholic at the time(meaning I was still getting smashed by whisky every night) and it affected my performance, as well as my punctuality, energy levels, and concentration. I would show up late, fall asleep in meetings, and not really get much done. There was no surprise for me when I was let go and I had been given several warnings. My boss was my programming mentor all throughout college, and one of my best friends, so I can imagine it was really hard for him. Me and him are still friends and talk everyday though it took a month or so for me to mentally uncouple 'boss' him who fired me and friend him. Either way, he made sure some friends came over and hung out with me after and encouraged me and made sure I knew that if called for a reference that he would give me a good one. He also helped me brush up my resume and such which was a nice gesture. I was in a bad place at the time though and I still kept drinking so it took a long time to find a job, but that's not really here nor there. I would say depending on your level of knowledge of this employee, be sure to try and help him through maybe some external issues if you think he may have a drinking problem or medical issue, go through HR to do it most likely, but do try and give him the benefit of the doubt. I don't think most people enjoy being shitty employees, if they chose that career path there is most likely a reason, and being in the bottom percentile of professionals in their field is most likely not a life goal of theirs.
The second time I was fired was different. I wasn't a great culture fit, but mainly I was a victim of some politics from what I gathered after talking it out with my direct boss. There was a project which was the first I was made the lead of and the reqs kept changing until there were conflicting requirements and I told them as much and that the end product would be defective and could get into an invalid state, but then was ignored, and the project didn't work as they expected. It was a big release and so 'someone had to take responsibility' and it couldn't be my boss as he's the CTO and had all the passwords and more domain knowledge, so I was let go. At least that's what I gathered. Luckily, I had two months notice here and I was already swimming in recruiter offers at the time and had been looking anyways. MY boss told me privately that I was being let go and that the interviews we were doing were for my position and that I'm not supposed to know but he felt me being fired was dumb. When I was let go they told me that they had brought up some issues before in my performance reviews but they had not, but rather mentioned them offhand in company wide meetings that everyone in the company should keep in mind. Things like lunch is EXACTLY one hour and things, sometimes I would take like 1 hour 15 minute ones even though I would also skip lunch multiple times a week. Regardless, never brought up to me one on one. So be sure if you're going to mention improvement things, that you mention them EXPLICITLY to the employee, and also be willing to work with them if possible as they may even feel bad but not know how to bring it up. If they need an hour and fifteen for lunch everyday, and maybe have a good reason, perhaps just don't worry about it. Not saying that is the case, and my reasons weren't really anything besides apathy, but maybe they live a bit far out and have to go home for lunch to give their pet medication at lunch. The other thing that was nice here is they considered if I had family in the area who could help if I got into a pinch between jobs and also gave a small severance. Things like that can really help.
Lastly some other pieces of things are to do it privately, hopefully near some lesser used exit or another. They will be emotional I imagine, and the last thing they want is to describe why they are looking distraught while leaving the building. A walk of shame is just cruel. Offer to let them get their things after hours if they like. Also offer to let them use the computer again at that time and maybe bring an external cd burner and blank cd or supply a memory stick. We all 'know' not to use the work computer for personal things but many do, especially by accident or its the first job or whatever. They may have some documents they saved as pdf's like receipts or something they need off. Or an important account tied to their work email. I think my first job I was an idiot and tied my electric bill to my work email for instance. Allowing them that can be nice. Also perhaps allow them to write a letter or something to some employees that they were friends with that they may want to exchange contact info with to get lunch or something sometime.
As for morale on the team, I think keeping them around is most likely worse though. I mean if you've ever had a coworker who was just horrid and then things improved when they left for a different job, its like that if they are the kind of employee that needs to be fired but you keep them around.
To summarize though. Kindness is key. A person most likely isn't underperforming because they want to, rather some other issue may be at play, even if they can't fix it themselves after being warned. Be sure to give explicit warning, and also to give a good run-time to find a new job if possible. Many people don't have the reserves to be between jobs for long after all, especially people with other issues in their lives. Let them keep their dignity, and also to get their belongings/friends/relationships/digital info with dignity and respect.
If you have questions or something let me know and I'll try to answer them. Good luck and no matter what try not to feel bad if you've really tried to help them. In the end the only person you can truly force change on is yourself. It's not your fault. :)
That said, I would do a lot of research before going in, but do see your doctor for sure. I say do research because depression can be a symptom of other things such as Bipolar type II or Cyclothymic disorder. Hypomania is the main hallmark that you would look into with those. I would also read and be prepared to talk to your doctor about anxiety symptoms as well as panic attack or ptsd symptoms. You may not have them but knowing the signs can help as depression can easily present with those, and you may need treatment for more than one thing to feel better.
Knowledge is power in this case. Jobs in IT and doctors are similar in some regards. Someone comes to us with a problem and we need to fix it. The more they know(symptom identification) and the better they can articulate why they think they may have some condition the easier it is to diagnose and fix a problem. Also both professions start with 'safe' treatments. We reboot the computer first, they try for pills or treatments with few to no side effects. We also go for the most obvious diagnoses first before getting into the esoteric,(the power is unplugged rather than the cable to supply power to the motherboard being bad) just like a doctor would go for depression rather than bipolar II for instance as that's the more common path.
I ran across this when I was suffering from some depression and was trying to see how other devs deal with it. It outlines some emotions and feelings about it, but also talks about bipolar type II and adhd. https://www.youtube.com/watch?v=yFIa-Mc2KSk
I hope this helps and feel free to reach out if you have questions. I'm still dealing with it myself so I get how hard it can be. It's not a failing of character or anything like that. It's a medical condition and should be monitored and treated as such by your doctor.
Hope you feel better soon!
If you disagree, state that and tell them why. Maybe you know something they don't about why you did something the way you did. Maybe they are just wrong. Maybe there's some business requirement you know that they don't or vice versa.
Also the other bit of not making changes just because they tell you to is this, you need to understand why you're making the change. This way you won't make the mistake again and you'll learn. You may stop doing the thing again if they comment it enough times and you internalize it, but that's not understanding, that's pattern recognition and won't help you be a better dev.
Code reviews are a two way street and a great learning opportunity. Use them to your advantage! :D
Sending positive vibes!
It's a talk about Bipolar Type II which doesn't have the same kind of full blown manic episodes as regular bipolar type I has. It has hypomanic episodes that are not often reported to the doctor because they seem like happiness or something good, or a sudden drive to do something productive.
I've been getting looked at for it myself now and normal depression meds(SSRIs) can actually negatively effect it.
It may be worth looking at OP!
For me the thing that helped the most was the /r/stopdrinking sub on reddit. Reading people's experiences and techniques from all sorts of groups and books, and reading about the triggers and follies of their relapses helped me a lot. Also a place where I could talk about problems related to the sobriety was nice.
If you live in a bigger city or another you may want to look for a craft soda shop. It can be helpful when you go to a friend's where they drink. You'll have your fancy soda so you don't feel left out when they get their fancy beers. Also my 3 go to drinks for bars and such to not feel left out or another are: a mock mojito, ginger beer with a splash of cranberry juice, or a roy rogers(coke with grenadine). In that order. A lot of places can't make a mojito, some places don't have ginger beer or they have super low quality ginger beer, but everywhere has grenadine(which is pomegranate syrup not cherry...) experimenting with mocktails and stuff at home may be a good thing for you depending on what your relationship with alcohol was like.
Also last year for my soberversary I wrote an article on my sobriety and experience in tech if you want to give it a read. A lot of my points above are expanded and there's some good discussion in the comments. https://dev.to/samuraiseoul/alcohol-and-developer-culture-19...
Lastly, if you want to talk or vent or have questions feel free to reach out to me either on here, or using the contacts in the article I linked to above.
I will not drink with you today, good luck and good job on the ten days!
Things were real touch and go for a while with the analysis taking forever or other problems but they released an update a few months ago and that's not much of an issue at all now. We had one other issue with the integration with GH where the person who signed up for it left the company and our integration went to hell but we've fixed that and it was our fault. Just be sure the account that is the repo owner is the one registering, not a contributor.
We haven't tweaked the settings as much as we need to but it's been nice. It catches things and links to education so the reviewer can focus on more important pieces like the architecture or other things. The settings are very granular so you can turn some on or off depending on preference. Another nice thing about Codacy at least(haven't used others) is that many of the things it complains about has explanations or links to good explanations and the why, so that the person can learn as well as fix, hopefully preventing further mistakes of the nature in the future.
Overall I think that Codacy and things like it are great tools. But for sure linting and static analysis can be at least slightly done with git hooks or CI tools as others said if you want a poor man's kind of trial run. I hope that helps!
Also its not clear if this is just some in-line translation of articles and subtitles using google translate? Something else?
Are you currently employed and if so is your current place complaining, and if so is it the same things? I know after having been fired I get a bit of anxiety just thinking about those kinds of things even if I am doing well.
As others said on the falling asleep thing, do ask a doctor about it, you may have an attention disorder or sleep disorder.
Also do you participate in the meetings? If not, why? I found if its a meeting I don't need to be in, or can't participate in then its harder to focus and stay awake.
I also find that I am not good at 'using' my ears. I had trouble learning by listening when I was in class, and also by listening in meetings, I need to read something to have a chance at following along often. If you have a similar thing, ask if they can provide some notes or info about the meeting so you can prepare better. That may help.
I find on productivity, making sub-tasks for the day helps a lot. Something like: * send email about x * ask Y about Z * look into A for project B * do ticket D * fix issues from PR for ticket Q * do PRs for persan M and N
and then I just do those as well as I can each day and break them down into smaller tasks if need be. I don't care if I don't finish them really unless it happens a lot, and I add new things as they come up. I also normally make that list in Slack to myself so I can access it wherever I need to. This will give you a good baseline of where you are in terms of daily productivity. Also be sure that if you're doing a whole bunch of non-dev tasks, and they are measuring you on dev tasks, to talk to your manager about it. That's not fair or they be unaware of all the non-dev tasks.
But it sounds like the commonalities that happened in both jobs were not producing enough, and also sleeping or not being attentive in meetings. Work out why those are and fix those.
Does any of that help?
Getting good at grocking through existing codebases is an experience thing I feel. You need to understand the frameworks and libraries used, as well as understand the underlying business use cases. You can look through open source projects or build small example projects with the libraries in question to help you with understanding their code bases.
Understanding a code base is like understanding most other things. If you don't have an understanding of most of the background things, then you don't even know where you're struggling. It's like jumping into a book about quantum mechanics when you don't even know Algebra. You need to learn about the backend they use, the frontend stuff they use, and the business cases. I know that's a re-iteration of what I said above but sometimes having something explained from two ways helps.
As for the meetings and such, I think it is partially the above as well. I know when I first started out, not understanding the business, and the goals of the business, as well as what is in the code base already, nor what can be done in the code base, made the meetings hard. You don't know what they are talking about, why they are talking about it, and can't contribute due to lack of understanding. This makes it boring, like attending a lecture so high above your understanding that it's almost pointless to be there.
If this sounds like a likely scenario, then you just have to study and study and study. Also be honest with your co-workers and manager. Most of the time in my experience if you can identify the problem, figure out a path to fix it, and explain to your manager, they will be on board. Especially if you show that you are working to fix it. Always be introspective about the problems, and never be afraid to look dumb by asking questions. Also maybe confide in another coworker first about your problem if that feels more comfortable than your manager.
Lastly, I know that I had lots of these problems when I had an alcohol problem and drank WAY too much everyday. It made me sleepy in meetings, hard to think about problems, hard to understand new things, and just lots of other things. If you find yourself drinking a lot, perhaps consider doing a month of no drinking to see how that affects things. (I know you didn't mention drinking anywhere but I thought I'd say something just in case)
If you have questions or things just reply! Also maybe look at dev.to as well as they are a more junior community with a softer touch than here and may have lots of advice from people closer to your level or different perspectives that will help!
Good luck!
Snaps are nice though for lots of software things and overall a nicer experience than apt, the sandboxing is just icing on the cake.
It's misleading to people who haven't been in the ChromeOs ecosystem before to compare your Crouton setup to Termina. Crouton is not an officially supported Linux on Chromebook solution and requires you to turn on developer mode on the Chromebook which warns you that you are in unsupported land and things may not go as planned.
If you know how Debian works, the new solution Google has for Linux on Chromebooks should work fine for most people. There's only a few gotchas at all anymore. Snaps even work if you know what you're doing.
That said, let's assume that this interviewer is actually going around bad mouthing you. Why don't you hit him up on LinkedIn? Preface it with "You may not remember me, but..." and just tell him that he was right. Say that his feedback while mean, helped you realize you needed to grow as a person and developer. Make him understand that you are sorry for how you reacted in the interview many years ago. Make it clear you're not asking him for a job or anything though, and that you just want to thank him for his helpful feedback.
It will stroke his ego a bit, and in my experience when you admit you were wrong even when its been years, and show how you've rectified the problem, the person is willing to try and reform an opinion on you.
Though I would bet on the first option of the possibilities you stated.
You can't study yourself to un-blindness.