Thanks for engaging

I see these tweets from women about how awful men are and I can’t help but be moved by them. I sit and wonder about what the internet has done to our society. But even before it there were cracks in the seems. Long ago people had begun to see our need for communities, and our lack there of. This connectivity has only seemed to connect us in the worst ways.

On the one side it’s vitriol from savages and while that’s certainly disturbing, I simply can’t relate or even guess as to why it may occur. The things I hear about what men have sent or suggested to these women, I simply can’t fathom what compels them. And I keep thinking about a woman getting a photo-shopped picture of her covered in blood. It leaves me speechless. Stunned. Heartbroken.

On the other side of the spectrum is this notion of ‘Reply Guys’. That’s something I can more easily understand. It fits into my brain.

If you would be unloved and forgotten, be reasonable [Vonnegut].” That’s something I think about all the time. All these reply guys out there: Screaming LOOK AT ME. Screaming ACKNOWLEDGE ME. Pleading LOVE ME.

It must be some innate feature of being human. This need to be heard, to be seen. Everything you do betrays you, it shows the world who you are. Everything about you is your own personal diary [I don’t think the quote is linkable but it’s from Chuck Pahilnuk’s book ‘Dairy’].

And I get that I’m doing the same thing right now – trying to communicate with nameless, faceless people in the future. That is not lost on me. I too want to be seen, perhaps even desperately. And I also know that few people, perhaps nobody, will ever see this. Maybe the only person I’m reaching out to is myself.


So I wonder why I’m even doing this. Why I’m typing these words, why I even care to put the effort in. And I realize that I’ve already answered the question. That I too, want to be seen, just in my own way. Seen for what I am or what I can offer. Not in a reply to what is already been said by someone else, but seen for what I say.

Also – not everything needs a reply. Actually, few things probably do.

Also – I often do not say the best, most articulate thing first. I need some time for reflection. To let the idea simmer in my mind, so I can more fully understand it and the speaker. I’m stupid like that.

I’ve been alone for too long. Lived alone too long. Gotten too comfortable with being unseen. Grown too accustom to the notion that I don’t matter, that there is no right to be heard. And maybe that things I say aren’t really that worthwhile to begin with.

I am reasonable in my expectation of others, and of this world. I find joy in small stupid little things that are hyper-personal to me. I love the way footsteps sound on pavement. I’ve no idea why, maybe it’s something about proof of movement, but I can’t tell. So even though I may never be seen, I’ll smile every time I walk somewhere.

ls – knowing right where you are

I don’t know about you, but I’m always listing (using the ls command) when I step through directories. Most of the time, I don’t event need to. It’s just every two or three steps through a given directory tree, I just have to ls and see what’s there.

And I think it’s because ls is just a little bit of clarity in an otherwise confusing world.

Am I in the right job? In the right city? With the right person? Exercising enough? Learning enough? Watching too much TV? I go on and on and on with these existential questions. I’m always wondering if I am where I aught to be – mostly to the detriment of enjoying where I am. And I can’t help but just issuing the command, just to be sure, just to remove any doubt. Just to confirm that I am indeed right where I think I am.

And that’s it – ls tells you right where you are. It shows you where you need to go. And there’s a lot of comfort in that.

Interviewing and inner viewing

I don’t like interviewing. It’s a stressful business for both sides, and the only solace I seem to have in being rejected for a job is that I wasn’t the one doing the rejecting.

I wrote this partly in rage, partly in despair when I’d been rejected for a job that I’d put a lot of effort into. And what’s worse, they gave me no feedback, so I was just left to stew and wonder why. This is the output of that wondering.

I have anxieties and insecurities to boot, and interviewing only seems to brings these to the forefront of my mind. I think about imposter syndrome, but I don’t really feel fraudulent about my intellect or achievements. I think embarrassed is more accurate. I’m modest. It feels impolite to talk about myself. I don’t do it regularly and I have all sorts of social strategies around avoiding it. It seems to me to be some flaw in our culture to want success and also be embarrassed by it.

But obviously in an interview you have to talk about yourself. The software/engineering questions I can do fine on, if I can only curb my enthusiasm for tangents and anecdotes.

So then it’s an evaluation of my personality. Am I honourable? Do I have integrity? Am I honest? Do I value team-mates input?

In answering one of those tell-me-about-a-time-that-such-and-such type questions I said this in an interview: “I know it’s perhaps the worst thing to say, but that’s the way we’ve always done it.” It was an honest answer, and that’s what integrity is right? Honesty.

I did not get that job. I’m sure they saw that as shifting the blame, which it was. I made a mistake. I can freely and easily admit that, but it’s rarely that simple.

The implication of “shifting blame” is that the institutions around you are never at fault (I have to use “fault” and “blame” for lack of better words in the age of blameless post-mortems. The alternative being something like “made, directly or indirectly, through action or inaction, a suboptimal decision and/or action” which just doesn’t roll of the tongue), but that doesn’t seem likely.

I think the conditions – both internally and externally – that allowed the mistake to happen are important. Context is important. Surely that’s why we made post-mortems blameless. So that people can freely explore that context.

Then, in an interview, how do you accurately portray that context? I can own the mistake, and I can even own the decision keep the status quo, but I can’t acknowledge that the status quo is bigger than me?

Here’s another thing not to do: Admit that you don’t have regrets. I think I got caught up in the semantics of this one, but I don’t have regrets. I’ve made mistakes to be sure, but I don’t dwell on them. I don’t live in the past. I don’t take life that seriously (another thing you should never say to a potential employer). Those mistakes have served their purpose which is to scare the shit out of me.

Now that I’m sufficiently frightened, I can make better choices. But there are other mistakes to make, and I may make them. There’s a big wide world out there, and I may not have the courage, strength or the conviction to take arms against a sea of troubles. I may settle. I’m not perfect and though I hope to do so, I won’t always choose right.

I mean the mistakes and bad choices we collectively make all the time in software development. Patching something instead of overhauling it. Scripting some hot-fix and forgetting about it. Caving into pressure by the PO (or whomever has sufficient power over you) to get something done quickly, not correctly. Not writing better documentation.

I’m going to make another mistake, of that I’m sure. Of course, I don’t hope to, but it’s absurd to think I won’t. But I’m also sure of this: I made it in good faith, I will own up to it and I will feel bad about it. I will try to fix it, and I’ll try to never do it again.

I think the worst part of interviewing is having a feeling of defensiveness. Like somehow you’ve got to justify your existence. For having to apologize and rethink every little phrase you utter (or write). What’s insidious about it is feelings are forever. Or for at least as long as they last, which may seem like forever.

Of course, no interviewer has really made me ‘justify my existence’. That thought is surely from the worst part of my anxiety. But life’s like that; you have all sorts of feelings in various degrees. Especially in high stress situations like interviews.

A recruiter will say ‘just be yourself’. What if being yourself is the problem. Your responses in interviews are your own stream of conciseness. And I for one, always seem to think better the second go around. Maybe I should prep better. Anticipate these questions. But that seems disingenuous to have canned answers to these things.

Also, how can I not be myself?

In a context where you’re being evaluated you’ll likely make assumptions about what your evaluators want to hear. That’s natural – public speaking is all about knowing your audience. But you don’t know the audience do you? You know your friends; you’ve just made assumptions about a public audience. If you’re a good public speaker, you’ve made good assumptions.

An interview is a little fucked because it’s a lot like public speaking, only very privately and thereby more intimate. So you’ll twist your answer to fit an audience you don’t know based on assumptions that are probably wrong. Then the evaluator, not getting the thing they’re trying to coerce out of you, applies a little more coercion. OK, another quick assumption recalculation and stream some more.

OK fine. Flip the script. Have no assumptions. Blurt out what you want instead of what they want. Good luck and Godspeed with whatever strategy you find yourself debating to use. Or kicking yourself for having used.

Somewhere in this time someone asked on twitter how to find a candidates’ integrity and I was thinking the same – because I had not shown it. I was wondering if you can measure integrity in an interview; if it’s even possible in such a short time.

People use these tricks: Tell me a story about when you made a mistake. Tell me something you regret – and what you learned from it.

The idea being that you can suss out someone’s bull shit. To hear them recant a story, and you have to (a) judge whether it’s an honest account of what happened and (b) judge whether the actions taken (or not) were reasonable. That’s a tough gig!

How about these questions as an indication of integrity. Do you cut in line, how do you feel about people who do? Do you hold the elevator door? Do you pet the dogs that lunge at you while their owners walk them? Thoughts on phone etiquette. Thoughts on children screaming in public.

My answers (to the questions nobody is asking):

(1) No. (2) It’s wrong, but, honestly, I don’t make a fuss when people do it. (3) Yes, why not? (4) To friendly dogs, yes, probably saying ‘hello puppy’ in some cutsie voice. (5) Kids these days, it honestly seems dangerous for them, but to adults – be reasonable, both in the use of and the expectations out of other users. (6) The parents are having a rougher go if it than you, so kindly, get over it.

I have this feeling that the best you can do is a bit of a gut impulse. Someone “feels” trustworthy. I’m sure it’s something to do with body language or speech articulation.

I look for modesty in people. Embarrassment. A sigh of relief that we’re moving to another topic. Instead of looking for the things honest people have, perhaps we should look for the things assholes don’t. Assholes don’t get embarrassed, they love to argue.

What others look for I cannot say. This particular company that rejected me did not tell me what I had lacked, so I’m only left to guess.

For better or worse, we’re always looking for validation in other peoples eyes. And we’re deeply hurt when we don’t find it. There’s no uplifting message, but I’ll offer this: somehow, some way, people seem to manage.

And I wonder if you can really show integrity under that circumstance. Maybe real honor can only come from instances when you have nothing to gain. Like holding a door for someone. Or petting a strange dog as you pass it on the sidewalk. Who knows? I surely don’t.

So you quit your job. What’s next?

I recently quit my job at AT&T in El Segundo working on the DirectvNow platform to do – well I’m not quite sure – something else. I knew I wanted to leave, so I did.

At first it was just going to be leave. I’d come back after some time and probably move laterally to some other organization. At the time I was reading ‘Surely you’re joking Mr. Feynman!’ and became enamored with this idea of continually learning. About being adventurous and hungry for knowledge, just for knowledge’s sake. To be perpetually inquisitive about whatever.

I went back home for a little vacation and one of the first things I did was get all my college books from my parents attic. I hadn’t ever shipped them to LA because they didn’t really apply to my job, so I never needed them.

So I get them down and start flipping through one about computer architecture that I’d always liked. I’m rusty of course, so I start with the beginning and try my hand at some of the problem solving questions in the back of the first or second chapter. You know, just for kicks.

And that was it, I was hooked again. The problems where fairly simple, but the act of trying to figure it out was exhilarating. I couldn’t remember any of it, but I’d learned this trick in college during I think a physics exam because I didn’t remember a particular formula. The realization was this; they always give you enough information, so just make the units work out to what they want. And boom! that’s it. Just use the logic of unit manipulation.

I digress, but I have to quickly say this other point about that experience. The book laid out some absolutely horrid formula for figuring out a translation between MIPS and instruction counts and average cycle times, when the actual relationship between them all is much simpler. I did, however, benefit from this poor explanation because I had to essentially reason it all out for myself to solve the problem.

So I thought, maybe I don’t need to go back to LA. Maybe, I’m being short sighted. Because the world – and not just software world – is huge. When I’d quit I told someone ‘Look, you [AT&T] are competing against everyone for me. And now with blogs and OSS and even glassdoor I can see what they’re up to.’

You’re not just competing with other companies to get customers, you’re also competing with other companies to get employees.

More often than not, this competition is across sectors. Especially in software where most skills are almost completely transferable. Unless you’ve pigeon-holed yourself in some way, there are a lot of jobs out there.

As I think now, I would say that perhaps even software development itself is a type of pigeon hole. The world of science is much larger than just computer science. And in that spirit – even though I couldn’t articulate it at the time – I decided to not go back to work in LA and maybe go get a graduate degree or two.

It just takes one step. Just don’t get on the plane.
The another, just email your boss.
It’s a simple as that to take a completely different direction.

I canceled the flight back and just stayed in Ohio. OK, it was through the holidays so it just made sense to stay. My lease is up soon, so I’ll go back; collect my things and that’s that.

And the time off has been incredible! Especially just to sit, read and I think most importantly, reflect. Bought some Rasberri Pis, started looking into game development. Heard about some ‘New Green Deal‘ and thought – smart grids, that’s neat. Got a puzzle box for Christmas and thought – right! puzzles are fun.

In fact I actually just happen to catch the Spirit Mars landing on C-Span at some late hour like 2 A.M. I also think I was back in Ohio when we shot a car into space – though that seems much less interesting in and of itself. My point is, I’ve had the luxury to stay up late and catch things on TV. To read and get distracted and have 7 tabs open.

So what’s next? I don’t like to speculate; but having and articulating goals is proven to pretty good for you. Problably. And Gnote is such a stupidly simple way to keep track of … whatever’s on your mind, I can’t help but use it.

Out on the bleeding edge with Fedora Silverblue

I recently bought a new laptop for myself, and like all computing systems I have, installed a Linux flavor outright. I don’t really dual boot and never keep Windows – which is to say nothing about the Windows platform or even the merits of dual booting; it’s just a preference and I just haven’t found the time to boot a flavor of BSD.

Fedora Silverblue had just come out of beta and I thought – yea OK I’ll bite. What’s all this flatpak and modularity and oh yea we bought CoreOS too so here’s rpm-ostree.

At first I wanted to be very judicous of what I installed on the actual OS through rpm-ostree. I started with just Ansible – which I’ll talk about why later – and jq – you know, just to make things all pretty.

Then, make my development environment completely in a container, because that’s the thing to do with a OS that’s it seems containers are pretty legit technology.

But, by the end of it, I had whole build chains and all sorts of -devel packages which is the complete opposite of what I’d wanted. So here’s my story. Personal log, star date – whenever, my journey out the the bleeding edge of Fedora.

img of rpm ostree

What had happened really, was that the container tool-chain – namely buildah and podman – had failed. Containers – that I’d built through ansible – seemed to have no file systems. The symptom of which was that nothing was in the PATH. I could not ls or /usr/bin/ls or cat or whatever in teh fuck.

Alright – so there’s some bug introduced by some update or maybe something I’d over-layed on the OS or really any number of things that you just have to go looking for. I’m a software developer after all. People have paid me to do this.

So I went looking; I could build perfectly good containers with the same steps manually. Same step even. A container built from just the single command ‘buildah from …’ would not work when built in ansible (specifically the ansible shell module).

Now at this point I could have just written a Dockerfile or a buildah script instead of trying to build it with Ansible. It was maybe 5 or so days after the initial image and I mean why bother with the trouble right? But boy, I just love templating files.

What’s more though is, a lot of containers are just dependent on environment variables but I’m building a dev environment. Not a highly configurable web-app with some mess of ‘-e VAR -e VAR -e VAR’ but, what looks like, a complete OS with all sorts of etc files. And I know I want ansible on my base OS to template it’s etc files. So I gotta dig in my heels and get to work.

Alright – debug mode. Let’s play 5 questions.
Query: How’s this fake ass filesystem work anyhow? Grrrr.
Answer: It’s got to be real at some point.

Query: Yes! That’s right. OK where do I find that? That place that’s real.
Answer: Hm.. Well.. Configs may point to something probably. It is real, but it’s also temporary so… Also docs likely have something. Go RTFM dude.

Statement: Been a few days. It’s getting deep. All debug output I can generate says they’re the same exact image, just with different ids. I know they’re different somehow, and I’m almost sure it’s something to do with user environments and the fact that ansible is actually running all sorts of different independent shells – different environments – and that abstraction has probably leaked.

Why don’t I just backup a few commits in the rpm-ostree?

Wait.
Stop the madness.
There’s got to be a better way.


I have this mindset – and here, I hope, is the main point of this blog – that everything digital is so ephemeral, and more importantly, repeatable (re-createable?) that I don’t give a fork to just reformat this entire drive and start all over. Just wipe it clean and do it all over again.

After a ‘come to Jesus’ moment I’m back to square one.

But that’s not really true is it? Square one. I learned a bit on the way, and you know, bugs exist, #DealWithIt. Only this time, let’s pivot – as the kewl kids say – and just and install anything I need to get this mother going.

Oh buildah broken? Build from source.
What’s that – ansible no good? Git clone && make.
I need libassuan-devel. Cool! Gimme that rpm pl0x!

And you know what? It works now. I can make solid images all day through buildah and ansible. I had to make both of them and override one, but as this guy ranted, customization is the power of Linux, not it’s detriment. That’s just the configuration of the OS I run at the moment. And if I want to repeat it, I can write an ansible playbook backwards, in my sleep, upside down at this point.

I shouldn’t be afraid to re-image and build it all again just to see if that may work. Because it’s all ephemeral; it’s all transitory; it’s all just about to fail in some new and novel way. One day, those bugs will be fixed and I can re-image all over again and get back to a nice clean ostree. Until then, I’ve got make, cmake, gcc and golang which by a wild guess I would say can build 60% of projects on github.

Having to debug and read documentation is just a part of this software game. And it’s not easy or always fun. And there’s always some learning curve. But I got through it.

Along the way I got distracted and read some interesting topics at https://discussion.fedoraproject.org/ and even became a member. Signed up and even voted on an discussion.