Software Developer - Tumblr Posts
From reading your entire blog more than once... I think yeah, a bit...
And it is also me...
I am wondering if this is something a lot of developers have... Or any other group defined by their work...
My life is a constant cycle between "I need to rest before I burn out" and "I'm wasting my potential, I should work harder"

I love GDB (Gnu debugger). It is only useful when something have gone wrong, but GDB just makes it sooooo much easier to find the issue. The picture is of a particularly deep stack. It is a short overview of every stack-frame, and where in the code it was called from, and to what. I can also easily investigate every single stack frame alone, finding what each variable contained the moment the crash happened, what arguments each function took, and the memory position of every single element. By the way, to run this, all I did was: gdb ./build/MyAwesomeProgram run bt
If you work in C or C++, it is SUCH a handy tool to know. And it is pre-installed on basically every machine.
Guild Structure
Wanted to write a long reply to this post:
Spreading experience around is always awesome! :D
It is good for the firm you are working at as workers perform better.
it is good for whoever is getting taught since they get smarter.
And it is good for the one teaching, both for the pleasure but also because you learn a LOT by being forced to explain what you know to someone else. It crystalizes the knowledge and experience you have acquired, and forces you to go through the basics again, but this time with all your knowledge and experience, you often learn deeper, more complex truths, methods and skills from doing so than it is POSSIBLE to do when you learn them while having little clue what they are ( Function pointers and their safer class versions is a classic for OOP programmers ).
There is a structure a firm can use as soon as it starts having separated departments. Departments, while necessary, makes a firm more segregated, and makes it harder for knowledge to flow around.
It is called Guild Structure Or rather... some important context if you google this: "Guild Structure" is the only way I have heard of it, but "Guild Structure" is also a product from a firm called FourWeekMBA... which is a consulting firm that sells services that firms that is... basically helping them implement these ideas... So you can easily risk finding overcomplicated explanations for what it is, since if they made it easy to understand... then they do not have a product...
And it is super simple. Normal development work for engineers and software is done in smaller teams... usually 4-8 people. sometimes all are in a domain (like software, electronics, finance, marketing, etc), and sometimes mixed. Often... either being mixed, or having several teams with different domains meet relatively often, like several times a month is a good idea. Because it stops misunderstandings from developing, since they are caught early. It is a waste when the software department develops functionality that it turns out no one actually wanted (Which happens... a lot more than anyone likes)
Firms, managers and workers are often afraid to do this. Usually for 2 reasons. One bad, and one that Guild structure fixes. The bad one is not wanting to risk looking stupid in front of other people. When software, marketing and finance people talk about what to develop... each domain is asking questions in a domain they are not experts in. That is the symptom and consequences of toxic firm culture. Talk about it in the open, communication is how you slowly work on and attack this, both in firms and personal relationships. Because they are both about making humans work better together.
The other is a fair enough one. Software people will learn a lot of software tricks that are only helpful to other software people. And if software people are spread around in these teams the knowledge cannot flow very well. Basically, while mixing domains fixed a whole bunch of knowledge flowing issues... it created a new one for domain specific knowledge...
This is where you make guilds. Make public guilds. There are clear lists of the guilds, explanations of their domains and several example for each guild for what kind of domain they are covering.
In some firms, a software guild is enough. In others, embedded software, high level software, front end and back end are different guilds. It depends a lot on the firm.
The guilds have communication between all members ( chatrooms usually ) and meetings every month. They will try to encourage knowledge sharing by giving tools, like shared drives where good guides, tutorials and tricks are shared. Sometimes written by guild members, sometimes found online (If you just had the though "Wait... is that not what Codeblr does?" you have just realized that Codeblr is a naturally formed guild), having people who have good ideas they want to spread give presentations during the monthly meeting, rewarding the best idea of the month. People can participate as individuals, or small groups (Tricks are often found by 2-3 people working together).
Meetings can be physical, or remote, or switch between them, doing both.
This basically solves the issue of knowledge sharing. It also empowers workers while making the firm better. Everyone wins!
My boss: "So Moose, can you use the release toolchain to generate me a .hex file to run tests on?"
Moose, after several hours of trying: "No.
I mean it is theoretically possible... I JUST need to change the correct variables... but since our toolchain is an excel spreadsheet with buttons that activates visual basic macroes that calls chains of .bat scripts, which works with Rensas compilers and... Ruby... for some reason... and have 0 documentation...I have no freaking clue what anything does or where I need to change what..."
I love my works automated "How have your onboarding proccess been?" Surveys.
It is basically me explaining that there is no such thing. My onboarding was "Here are the emergency exits, this is your onboarding buddy. Go"
Was not given tasks. Did not know what my team does ( Still do not, but now I know that NO ONE knows ).
And explaining that there CANNOT be a good onboarding proccess since there is no plan ( several things are 'Highest priority" for example. A clear sign of no plan ) and no command or decision structure.
And when there are no plan and no structure... you can only onboard people to chaos
The... Crowdstrike issue is not being resolved... at all...
The issue was not a bad update.
The issue was no testing. Pushing late friday. Pushing to all users at the same time.
And that is the easy-to-get-right stuff that we can see. Most likely the firm is a complete fucking from top to bottom. Because it basically have to be to let something like that happen.
And that is not getting fixed. Not for Crowdstrike or the tech industry in general.
Hell, the CEO of Crowdstrike have had THIS EXACT SAME PROBLEM with lack of testing and structure in previous firms he have been CEO of.
But since his strategy of removing all safety and structure makes money in the short term, IE is good for stock owners, IE the already filthy rich, he gets to keep being CEO of important firms.
NONE of that is getting fixed. We got solid proof that the biggest danger to modern infrastructure is not hackers or the people all the invasion-of-privacy tech and laws target.
It is the massive for profit organizations with root access to everyones machines. Meaning the laws and tech that are being rolled out RIGHT NOW to spy on everyone and gain access to everyones machines is not only sacrificing privacy. It also makes you LESS safe.
But that lesson is not allowed to be learned. So we have done nothing about this, and we will do nothing about this.
the crowdstrike catastrophe is getting resolved but the intel 13th and 14th gen CPU nightmare is just beginning. damn
This is... SUCH an accurate way to describe what working with programming is like
And fun fact!
We work very hard to make the computer MORE whiney.
We want it to check EXACTLY what is going on and start crying about very specific things so those errors does not end up in the release!
computer: I can't icanticanticant do it...I need CoolLibrary where's CoolLibrary I can't find it ;m;
me: uh, lemme check..
*rummages through the filesystem*
me: ...aha !! see, we got CoolLibrary right here !
computer: b-but..but it's...it's the nnneeewww CoolLibrary >:c I want the oooolllddddd one !!!!
*me, writing 'old' on a label and sticking it to CoolLibrary*
me: here you go, honey, how's this ?
computer: yippee !!! yaaayyy !!!! ^w^
Got an email at work today that my workplace will now allow the use of co-pilot in development.
So I replied and asked what the firms stance is on copyright and licenses when it comes to large language models.
Because if their stance is that running code through a large language model strips copyright and licenses away then they have just given every worker permission to do that to the firms code and sell it to our competitors. Should take me a few hours to write the python file.
OR is their take that the copyright and licenses survive?
Because some of the code used to train co-pilot is under the GNU license meaning any codebase using it must be published as open source under the GNU license.
Either way, the firm is fucked.
I am looking forward to their response
Honestly... my advice when people ask how to learn git is:
1 Open a console.
2 Write "git"
3 press enter.
Now read and follow instructions.
Git is OLDSCHOOL.
Meaning it is a self documenting program
Like... I tell people that if they want the "It just works" experience, they should install Linux mint and move on with their life.
Now you no longer need to check the news if windows have snuck another thing that spies on you into your PC and you now need to manually turn it off. ( If Linux distro did that it would not have any users 12 months later... so they don't) .
There is no longer ads you risk clicking on by default embedded into your OS and programs. You cannot click on anything bad that can fuck up your machine ( User space protects ) because... it is YOUR computer. It is insane that this level of "don't have to worry. You are safe" is a feature on Linux... that should be a basic thing for every OS...
There is no obfuscation. Anything you want to see, change or control, you can. Everything is made to show you, the user, as clearly as possible what is going on. And if you don't like something, you can change it. 100% of the time. You do not have to hope that a UX designer remembered to give you settings and Daddy Microsoft allows you to do it.
When something is hard to see,understand or change in Linux, it is because it is a complex difficult thing. It is NEVER because a dude gets a salary for optimizing obfuscating how things work.
And it is not MAGIC. People who design and manage linux distroes are not a special race of humans with better ehtics and design skills than the lesser folk of windows and mac
You know what it is? Healthy competition. That thing so many people are in favor for in theory but not in practice.
It is because open source means the distros that get popular is THE ONES THAT THE USERS LIKE THE MOST.
And not just the Linux distro. Every tool. Every functionality. Every program and library. If the users want to use a competitor, they just can.
Like... my sibling in christ... stop begging Microsoft to fix visual studio so everything does not break if a file or folder have a space in it.
It have been 28 years. It is never happening.
Get ovet to Linux. Stop begging for features in Windows. In linux you DEMAND them. In linux you get them.
Because in Linux we BUILD them.
"I like windows. It just works."
No Jim.
No the fuck it doesn't.