Pages

28 June 2015

Pairs

You might need a fresh cup of coffee for this post. I needed coffee to write it.

I'm reading Kent Beck's book, Extreme Programming Explained, this summer. It's a few years old, but it's been on the recommendation lists of several people I know and respect for quite a few of those years. I keep track of a lot of industry press and research literature, and people argue about software production methods constantly (and have done so since people first started programming computers). Not everyone agrees that extreme programming (XP) is a good thing, but even if not everything that it suggests is implemented out in reality, a large portion of it is really in use. Much of it has to do, unsurprisingly, with people and how they interact. I'm a computer science student fighting with PTSD, so I'll take help where I can find it. 

If there's one word I hear when being given advice about programming, or read about ways to program effectively, it's communication. You have to be able to communicate with the people you build software with, and the people who will use the software you write. Not communicating means that the software doesn't solve the problem for which it was built, and civilization comes crashing down. I've seen this in action, and it's true. Pair programming is one of the things that's presented as a solution to the problem of communicating while building software, and that's been a subject of tons of debate. The overall impression is that it's a good thing, and from my admittedly limited experience programming in pairs, I again agree completely.

Still I'm spending a lot of my time writing code by myself. There is a lot written about ways to build software faster and with fewer bugs, and there is also a lot written about Post Traumatic Stress Disorder (PTSD) and social anxiety. There's very little, at least as far as I've been able to find, written about pair programming when one or both of the programmers in the pair have PTSD to deal with. There's really no manual for being a student with PTSD, and there's similarly no manual for being a programmer with PTSD, so I've been working mostly alone since I started seriously hacking again a number of years ago.

PTSD likes being alone, suffering in silence. 

Part of it is that social interactions can be complicated-- the world is dangerous, and dealing with people can be even more so. Avoiding things is a huge part of how PTSD keeps itself going. PTSD makes it difficult to concentrate, which makes programming harder-- for me it means that I sometimes have to hammer longer on learning a new concept than people who don't have trouble concentrating. I don't have the greatest sense of time ("chronologically challenged" is a term I like), and I have a wacky sleep schedule, and there are all kinds of things I could list that make pair programming a difficult thing when PTSD is involved. 

They all boil down to fear, being afraid that I won't be productive because the PTSD symptoms will get in the way and then people won't want to work with me because they think I'm stupid or slow or an asshole or whatever reason. It's the paradox that you have to be able to communicate, while at the same time your brain wants to be back in the Desert. You can wear headphones and listen to Massive Attack to mitigate your brain wanting to play back flashback movies (headphones in fact help a lot) but you can't pair program with headphones on. The fear I feel is that the mechanisms I've come up with to cope right now (i. e., working alone in a lab in the middle of the night) don't apply to the real world where I write code and people give me money in return (and where people pair up to write programs).

Hold the thought on pair programming for a moment. 

In the early days o' the web (aka the 90's) I was a programmer at a company that built web sites for companies that sold houses. I wrote some good software there, but it was hard to do good work there because we didn't have things like extreme programming. We actually didn't have a lot of things, like source code control or testing or QA or in fact any of the really good tools and methods that I use daily on my own projects now. Programmers were never allowed to talk to customers; we were often discouraged from talking even to each other. Many of the practices that were normal at that company (and others like it) (and who no longer exist) were the reasons that someone sat down and came up with something like extreme programming. I mention this because my experience back in the day gives me a pretty good perspective on now not to do things, while also giving me a pretty good reason to do some of the things that XP suggests. 

There's also a lot about extreme programming that meshes well with the cognitive therapy I've worked on for PTSD, probably enough to write a new book, but here's one example-- testing. The (very simplified) idea of writing tests for software is that you end up with a set of tests that software has to pass before you consider the software "good". If you're using a program on your computer and your computer crashes, it's probably because the "something" happened that the program didn't expect-- since no one tested that "something" happening, the program doesn't know what to do with the problem and so it crashes. 

If the sound of a gun firing takes you back to the Desert, a truck backfiring (or in fact any loud, sudden noise) can take you back to the Desert too. PTSD is your brain being trained to hear the gunshot (or something that sounds like one) and processing it the same as you'd process it in the Desert. If the gunshot is associated with something bad happening, well, that's where the PTSD is from. Whatever you see or feel as a result of hearing a truck backfiring in Indiana is your brain running a program that it wrote when you were in the Desert that does things like make your heart beat faster and your senses to sharpen (it's the fight or flight response).

Cognitive based therapy (CBT) helps you learn that when you hear the truck backfire, you need to stop and think about the noise you just heard-- how likely is it that you just heard gunfire? You learn to evaluate the noise you just heard vs your response to the noise, and see if it matches up. The program runs-- the PTSD, your brain's response to the noise the truck made-- and CBT is the test program that runs that says hey, wait a minute, the output of the program PTSD is running doesn't make sense. What CBT does, eventually, is writes a series of tests that look at the programs PTSD is running and invalidates the programs (reactions) that aren't valid.

A big part of the fear that's generated by the idea of pair programming is that same fight or flight reaction--- it's emotional, not rational, but there it is anyway-- it probably has nothing at all to do with the person you're paired with, or even the problem at hand. It's extra stimulus, having another person at the same desk. The way I think, even when my brain does successfully navigate the PTSD, is probably going to be different than the way someone things that doesn't have PTSD to worry about. It takes time, usually, to even articulate what's going on. And so I've spent several hours writing all of this down, trying to make some sense of it.

The challenge-- my challenge-- this summer, is trying to put what I've learned in therapy at the VA together with the experience I've accumulated, and try to match that up with what industry (where I'll be at some near future point) is doing, plus computer science. 

Which, as it did today, keeps me up all night sometimes. :)











Fireworks

I forgot that this year, Madison's city fireworks show would be on the Saturday evening before July 4th. At some point in the past couple of years the fireworks show was moved downtown from it's previous location on the far eastern side of Madison. Now that I live downtown, the fireworks show is literally two blocks from my apartment.

I work/hack nights, and since my sleep pattern is (or at least seems to be) perpetually out of whack, I was up all night Friday night and part of Saturday morning. This meant that when the city started launching fireworks two blocks from my apartment, I had been asleep for several hours.

Yeah. Oh, shit.

I'm not sure at what point in the fireworks show I was awake enough to hear what sounded like my neighborhood being bombed from the air, or what I was dreaming about at the time. It took a little while to realize that the noise from the fireworks was real and not part of the dream. It took a little while longer to realize that what sounded like explosions was really fireworks going off. I was probably more confused than anything-- why the fuck are fireworks going off like hell is breaking loose? It's June-- until I realized that the fireworks show must have been scheduled for this weekend.

It also didn't help that since the fireworks show is downtown, that means that there were a lot of people moving around my neighborhood. That's actually not that bad by itself. I live downtown, so people moving around isn't that unusual and when it bothers me I just remind myself that I live downtown (and like living downtown) and it's just the PTSD being bitchy. The problem is that many of my neighbors live on upper floors that have balconies that face the lake where the fireworks were being launched, so of course that's where people who aren't lucky enough to live downtown come to drink (this being Madison) and watch the fireworks.

One of the nice things about my neighborhood, my social anxiety aside, is that it's a pretty vibrant place. When the weather's nice there are a lot of people outside on porches and balconies. So truthfully, I'm cool with people coming downtown to watch the fireworks with friends. I try to not be the grumpy old guy on the block.

Until they bring their own fireworks and start setting them off from said balconies, close enough that I smell the gunpowder and whatever other chemicals are released by fireworks when fire is applied. That's when things get really scary. It took time, but once I figured out that the city fireworks show was going on, I at least knew it wasn't an immediate danger. I didn't like it, or how my brain and nervous system were reacting, but I at least knew what was going on. When there were more booms and flashes, I knew what they were from. It's not the same with random people and fireworks, that can go off at any time (and often do so very late at night or early in the morning).

Normally, I make it a point to be safely inside a quiet space (usually the computer science building) when I know public fireworks are scheduled, and I'll tend to stay in such quiet places even more than normal until the yayhoos with fireworks have set them all off and things get back to normal. This year fireworks season snuck up on me. So, happy birthday, America.

Now please be quiet, k? Some of the people who went to great effort to make sure America is still here have a bad day when you celebrate with explosions, and somehow that doesn't seem quite right.






21 June 2015

Making hyper vigilance into something positive

Today (well, actually yesterday, since it's already Sunday where I am) I slept. Finally. I haven't been sleeping well lately, for the past few nights or maybe the past few weeks. My schedule is pretty wonky anyway-- I work night shifts, and so I am usually awake all night and try to sleep during the day. It's close to, but not quite, a vampire's schedule. I'm trying to keep the happy  + productive  = work + sleep + hack + caffeine + medication - PTSD equation balanced, but there are a lot of variables and solving for x is difficult sometimes. Some days there's no solution, and my body says "Ok, today it's payback time. I don't care what alarms you set or what you have planned, you're going to sleep for 12+ hours".

Once I'm up and out of bed, it takes a little while for me to get dialed in. I need to look at the weather, partly because I don't want to get wet walking to work/the lab and partly because I'm fascinated by the weather and I look at a lot more than just the temperature. I glance at social media to see if I have any notifications. Maybe I'll scroll through my Twitter feed, glance at a couple of the Facebook pages/groups where I have some responsibility for what goes on there. Siri tells me what day it is, and what's coming up on my schedule, and I often say thank you because it's the polite thing to do-- computers are people too, right?-- and then I go and do where and when my calendar says I need to go and do.

-----

I'm struggling with hyper vigilance, which is a symptom that goes with PTSD, and the fear and the paranoia that come with it. Being homeless really made the hyper vigilance part of PTSD worse, because just like in a combat zone you have to view everyone you see as a potential threat. One threat is people who think you have something work taking, and because you're homeless they think you're weak and they can take it from you. The other threat is two headed-- first, people who will figure out that you're homeless and do something to get rid of you (i.e., call the cops). The other is, as you might guess, the cops who might arrest you for trespassing.

I've worked with, played softball with, gotten drunk with and talked to a lot of police officers in my life. Lots of cops are veterans, and there are many parallels between serving as a police officer and serving the military. In the very limited interactions I've had with police officers as a homeless person, they were nothing but polite and professional. Cops are generally pretty cool people. Still, I never wanted to get myself arrested, and so I learned to be very aware of my surroundings and very aware of the presence of police officers, cameras, and similar kinds of people and devices during my time on the street.

This is in addition to being very well trained in keeping my eyes open for unusual things, people that seem out of place, things that are in places the shouldn't be, and things along those lines. The military teaches you these things, and they are part of your job-- especially when you spend half of your time on active duty in other countries where there are people who are in fact out to get you. America has enemies. See something, say something isn't a slogan for the military, it's how you do your job.

Vigilance takes energy-- a lot of it-- and hyper vigilance obviously even more so. It's a "shields up 24/7" mentality, and it keeps not only your brain and nervous system busy but also all of the biological systems feed your brain and nervous system. It is exhausting. It's depressing too, because I end up feeling tired and yet not sleeping right, and I feel bad about myself because it feels like something's terribly wrong with me.

It has its benefits, though. It kept me alive in boot camp-- I needed those few seconds advantage I got between hearing the click of the intercom system and the start of the playing of the recording of reveille every morning. Who's to say that the extra few seconds advantage I got in the Desert by being tuned in to the sound of the PA system activating that announced SCUD alerts wasn't a benefit? How many times have I avoided a person, place or thing because something just wasn't right, and in doing so avoided something bad happening?

That's the PTSD talking. There is no answer. I don't know. In reality, probably not as many times as the PTSD tells me. There's a certain point where I can be so hyper vigilant that I spend all of my time worrying and none of my time enjoying or recharging. That's when it becomes a problem, because that's when I start avoiding other people. I stop going some places, and then soon I stop going to any place. I avoid people, and then I actively push people away.

Which is no fun, really.

-----

There is a broader issue here-- to some extent, hyper vigilance (along with the other symptoms of PTSD that I experience) is something that I need to learn to live with. Someday, hopefully, it along with the other symptoms and the bad things they bring will lessen. In some ways, things are in fact better than they used to be. I'm aware of what's going on now, and aware of why it happens. I'm working to correct the bad parts of all of this, using therapy and medication and practice.

The broader issue is that while hyper vigilance can cause a lot of problems and make a lot of things difficult, when writing software it can actually be an advantage to be able to be so acutely aware of everything that could possibly be a danger.

Software is supposed to be robust, meaning that if something goes wrong, a program should be able to recognize that something has gone wrong and deal with it. Maybe the network is down, but because the software is capable of doing so, you can continue working until it comes back up. Maybe a disk drive can't read a file, and the software knows how to give an error message that actually says what the problem was before stopping. Maybe a call to a function doesn't supply the right parameters, and the function includes a test that catches the error before bad things happen.

It is very easy to go too far. It's easy to let hyper vigilance, and PTSD in general, take over to the point where your brain is so busy worrying about everything in the world that could happen, that you can't think about whatever meaningful work it is you're trying to do.

My brain wants to be hyper vigilant-- in my life this has been a normal state. Terrible things have been happening to me since I was abused as a kid. Chaos, and trying to make sense of the chaos, is how my world has always worked. Maybe it's hard for other people to understand that, I don't know. I do know that it interferes with life, things like getting good grades and getting to work on time and making and keeping friends. It's an obstacle, in so many ways.

Even so, when I'm working on writing software, I'm trying to leverage the hyper vigilance I experience and put it to good use without letting it take over and make it impossible for me to get anything done. (Jargon alert: if you're not a software developer, please hang in there for a few sentences.) That's why I'm taking part of the summer to learn about unit testing, and automated software testing tools, and test driven development (TDD).

In computer science classes, if it compiles and runs on the given test data, it ships. Which is fine, but as I've been learning by working on hackathon projects, the real world is a lot messier.

There are some things that can be tested automatically; there are linters like jshint that will find errors in your JavaScript programs and alert you to their existence. Things like missing semicolons, or variables that are defined in the wrong place, or brackets and braces that don't close. Programmer mistakes. It's not all that different than a spell checker or grammar checker keeping you in line when you're writing a paper.

There are also tests-- which are really just programs themselves-- that can be written that run a program with a particular set of inputs, and check the outputs to see if they match what's expected. If a test passes today, and I add a new feature, and then tomorrow the same test fails, then something I did when I added the new feature screwed things up. I'm human, and so I make mistakes when I write new code or modify old code. Testing helps mitigate them though-- both in catching the simple stuff, and in writing the tests themselves. Writing the tests is where the hyper vigilance is an asset, because the part of my brain that's very good at coming up with all of the ways things can go wrong gets to do its thing.

This is the heart of what I'm trying to do lately. I'm beyond tired of PTSD causing me to not be able to do things. Instead I'm trying to turn things around, to use the good parts of the bad parts to move forward. PTSD, at least in my opinion, isn't something you can cure. The memories of what happened will always be there, and especially over time the symptoms have become a part of my life. I've chosen to make the best of them; maybe in doing so, someday they won't be symptoms so much as they'll just be.
















14 June 2015

2090 Miles -- PTSD and Software Development

That's not a title you see every day, right?

This is still a blog about PTSD and college, but as I'm doing more software development my life is also becoming more about PTSD and software development. I'm going to start writing more about PTSD and the difficulties it brings to writing software, but also some of the tools and methods I am using to mitigate its negative effects on the process. 

Along with the PTSD and college things, of course. 

This past week, I spent most of Wednesday in Chicago at the Field Museum attending the Build Tour, the version of the Build developer's conference that Microsoft recently held in San Francisco. It was a full day of presentations/sessions/talks mainly about the upcoming release of Windows 10 and what Windows 10 means for people who build software for Windows, especially Windows 10. I'm a hacker, and I'm writing this using Libre Office on a computer running Fedora 22. I share in at least some of the disdain that most hackers have for Microsoft, some of which is deserved and some of which is me being the high school hacker that heard how Bill Gates got pissed off about people copying BASIC back in the day.

Then again, because I'm a hacker (and because I'm a person who builds software for the love and wants to get paid for doing so), I will not turn down a free trip to Chicago to hear about what a major software company is going to be releasing later this summer. Back in the dot com days (I hesitate to call it an era, but it might have been that), I did a lot of work in Visual Basic 6 and Active Server Pages (ASP). I am also a person who works at a university (can we just say enterprise?) help desk, and so knowing what's coming next is always a good thing.

There was free food, too-- including donuts and coffee on the bus on the way to Chicago. Not saying that was the only reason I went, but it was a nice bonus. Microsoft may be the Evil Empire (I know it isn't, but follow me here), but those cats at least understand something about the care and feeding of programmers that are awake to get on a bus at 0445.

Me, I was still up-- I'd been at work until 0100, then spent the early hours of the morning working on one of my personal projects. I fell asleep after the donut, and didn't wake up until I felt the bus moving like it was in traffic. Which it was, the driver had hopped off the freeway onto W. Addison St. I looked at the street sign, then some house numbers, observed they were way higher than 1060, and fell back asleep. (I was a courier for a while after the dot com 'era', and hopping off the Kennedy Expressway onto Addison, eventually turning south, and hopping back on the Kennedy made perfect sense. So, not enough to keep me from falling back asleep.)

Conferences, even developer conferences, have a social component. You run into people you know from seeing them at other conferences, you meet new people, and you talk shop. If you're a veteran, you find at least one other veteran and you talk about where you were stationed (and then you talk shop). I ran into a retired Air Force guy that had done avionics work on F-4's and T-33's. I'd been to the Desert, he'd been to Kosovo. Both of us in college, both of us learning to build software as a career. He'd driven in all the way from Detroit.

When he introduced himself, I was busy attacking the Caesar chicken wrap I'd grabbed from the lunch table and looking up at the skyscrapers. Madison doesn't have a skyline, so whenever I'm in a city-sized city I have to look around for a while. Anyway-- I was feeling a bit anti-social, probably because I was low on sleep but also because I was triggered, a little. (On the bus ride down, someone had sat next to me, which on my checklist of social anxieties is a trigger. I like my personal space, and I'm not small, so someone my size sitting next to me means neither of us gets personal space.) Talking to another veteran is always a good thing, and doing so loosened me up (which talking to another veteran always does).

The social component of developer conferences (and hackathons, by the way) is often refered to as networking. Some people are naturally good at making a lifelong connection every time they meet someone, but for me it can be difficult. I've had a lot of people in my life that I considered friends, or at least important to me, turn out to be people that hurt me in some way-- or just disappeared, for one reason or another-- and neither my family nor my childhood offer any help. My family didn't network. My family most of the time didn't even talk about anything, so I've had to learn the whole networking thing as an adult. PTSD affects one's ability to process things like trust-- with PTSD you perceive everything, and by extension, every person, as a threat. The past couple of years dealing with landlords and Porchlight and being homeless haven't made things any easier. Then add that I'm on medication that changes my mood (for the better, but still) and the idea of networking gets a lot more complicated.

Since being on my own again after transitional housing, and especially this year, I've spent a lot of time alone. This is part of me working on healing from everything that's happened, focusing on myself and getting my life in some kind of order. I've been becoming a lot more self reliant-- I've seen what it's like to let 'the system' take care of my life, especially the part where I ended up back on the street-- and so I've also become less trusting. Having a social circle, even of people who do what I do for a living, is something that requires at least a little bit of trust. You have to be willing to listen to what other people say, and you have to be willing to give your opinions at the same time being willing to listen when people tell you you're full of shit. This willingness, in terms of PTSD, is a liability. A social circle (even a professional one) means that you drop your shields and let people be a part of your life, but the PTSD is screaming at you not to let anyone too close because you can't trust anyone and the world (and everyone in it) is dangerous. PTSD says it's best just to avoid people altogether.

The problem is, writing software that people will use is an inherently social activity-- you have to talk to other developers, you have to talk to your boss, and most important you have to talk to the people who will pay for and use the software that you make. Sometimes you have to take a stand and defend your position and ideas. Sometimes you have to listen, and empathize, and most important you have to understand. Worse (not in a bad way, keep with me here), you have to communicate. You can't always eat lunch by yourself, you can't always sit alone on the bus, and you can't always stand at the back of the theatre (which I did) where the talks are being held. Everyone I've ever talked to about software development has said that the ability to communicate with others is the most important part of the entire process. Everyone whose advice I've heard about getting a job says that it's not just what you know, but who you know.

I agree, on both counts. I know these things are true.

I watch people. Part of this is because of my military training, especially from being stationed in other countries. I was taught to always be aware of my surroundings, of the people around me-- what are they doing? Is something about to happen? If someone tosses a pipe bomb in the window, what are you going to duck behind? In looking for threats, you see a lot of other things, a ton of other details, a lot of it subconscious. People do that normally-- we're always judging each other's body language, appearance, etc-- but (back to homelessness again) when you're homeless and in an environment like a university you do everything you can to be invisible. When you're a kid suffering abuse, you do everything you can to be invisible. At the same time, you're always paying attention. That's why hyper vigilance is-- it's not just about “am I going to die”, it's “I have to know everything that's going on around me to stay alive”. So you notice a lot of little, mostly meaningless, details about people.

What I noticed at Build was different than what I notice at hackathons-- it's a different kind of meeting, for a different purpose, of course. At hackathons, I'm the guy that blows the bell curve. If I'm not the oldest person at the event, I'm almost guaranteed to be the oldest hacker. A large majority of the other hackers at a hackathon (and even some of the people manning the sponsor tables) are young enough to be my kids. Build, especially the tour version that goes around the world, is geared towards professional software developers. The people I saw, and talked to, at Build are adults earning a living writing software for people who pay them to do so. Some of them have kids (probably some of them have kids in college), and houses and cars and all of the things you'd normally associate with being in IT, working in the city and living in the suburbs. I saw at Build a lot of people that look a lot like me, or at least the me that I thought I might look like at this point in my life. At hackathons I see a lot of people who look like me twenty (or thirty) years ago. (I'm trying very hard not to express this in terms of stereotypes-- it's a lot more complicated, I know, so if you find yourself offended right now please let it slide.)

It's hard, when you've been homeless, to see yourself living in the suburbs and commuting to a white collar job in the city every day-- to see yourself either as one of the people attending Build, which is actually my tribe, or a hackathon hacker, which is also my tribe. It's perhaps not that unusual to be in your mid-40's and be in college, but it is unusual to be in your mid-40's, in college, and living on caffeine while learning new JavaScript frameworks in the middle of the night while planning a move to Silicon Valley to make your dent in the universe.

It's hard, but it's not impossible, because that's what I'm doing.

I spent the day at a Microsoft developer conference learning about writing software for Windows 10. I'm not all that familiar with current Microsoft way-- the APIs, etc-- because the last Windows operating system I really developed native apps on was Windows NT. If you asked me about .NET I'd give you a funny look and a shrug. Not my thing. Even so, there wasn't anything presented at Build that I didn't understand. There were a lot of new things, like XAML and the Windows Universal Platform that I'd not heard of until Build, but as I watched the demos and presentations I really got into them. I learned a lot, but it was adding new knowledge on top of old knowledge. If you asked me today to develop an application to run natively on Windows 10, I'd at least have an idea of what tools I'd be able to use and where to start.

I have another position now, where I work-- I still work help desk QA, but I'm also a student software developer. I go to work, put down my backpack, pull out my laptop, get signed in, and I start working on an application that's going to be used at the campus retail technology store. I'm adding SMS texting capability to an app that was originally designed to use the kind of pagers that look like the coaster-sized ones you get when you go to a restaurant and have to wait for a table. Here, you wait for a technician.

I've had to (re)learn how to use PHP and MySQL, and configure Apache, all of which have gone through a ton of revisions since I last touched them. The PHP world does things differently than the JavaScript world, both in style and substance. At the same time I'm using tools like Git to keep track of revisions, Trello to keep track of tasks and issues, Grunt to automate linting and testing-- the list continues. If you're lost by the terms, that's ok-- the point here is that making modifications and improvements to existing software, and learning new languages and development tools, is what being a programmer is.

Communicating is also what a programmer is; I had a meeting on Friday with my boss and the supervisor of the retail store that's going to be using the application that I'm working on to discuss the details-- functions the app will have, the interface, etc. It went well. It's the second meeting I've had with the store, aka my client, and each time I've learned new things about what I need to do and had my questions answered.

I'm finally getting to write this all down, but this is the story and the discussion that plays back in my head every day. There's the PTSD, always there, always telling me how dangerous the world is (the Persian Gulf War, 9/11) and how everything that can go wrong will go wrong (failing classes), and that I should avoid everything (like a social life). There's all of my experiences that say I can't trust people (like Porchlight who said they were there to help me and proved otherwise). There's all of the people who have told me I need to settle for something, to just accept things the way they are (like the Vet Center person who told me I should just be 'retired'). Even my Mom, who upon hearing that I plan to move to California next year was all like, “but it's so expensive out there”.

Every day, I look at the facts. I look at what I'm doing now vs where I've been, all the failures and all of the successes. I'm extremely critical-- I ask myself if what I'm doing is right, if I'm doing it the right way, am I following the right advice, am I doing things when I code that others Consider Harmful™? Will anyone be interested in hiring a 40-something programmer, especially one with PTSD? How am I going to deal with asking for disability accommodations, things like a flexible schedule or time to wander outside along without a boss asking my why I'm not working? Am I going to end up homeless again, except this time in California?

Every day, I have to have this discussion with myself, and every day I reach the same conclusion. I'm not doing everything perfect. There are probably companies that won't hire me because I'm twice as old as most of the people that work for the company, and there are probably some that will read all of this and figure I'm just a liability. I'm aware of Google. I don't try to hide my blog, although I don't advertise it either-- still I know that a potential employer might someday see it. I'm okay with that.

That's ultimately why I'm spending so much time alone. I'm not a complete and total introvert. I do enjoy the company of other people, and I also enjoy working with other people. I also know I need a certain amount of space to be happy-- I need alone time to function. So much of life the past couple of years has been making my life fit into what other people (college, transitional housing) has required, and right now I'm working on what I need to be productive.

Build Chicago means a lot because of the technology, but spending the day among people who are professional software developers-- some of whom are hackers, and some of whom are not (which is a discussion for a different day)-- and experiencing the social anxiety and the emotions and the PTSD-- doing all of that, and at the end of the day still being willing to believe that I belonged there. I had as much professional right to be there as anyone else. Just the same as I have the same right to be at hackathons staying up for 36 hours and hacking with people who could be my kids. That I can do these things even with everything that's happened, even with a disability, means I've earned it-- and when I get to the mythical place that is Silicon Valley I'll earn my place there, too.

A journey of a thousand miles begins with a single step. (source)

It's 2,090 miles from here to San Francisco, CA. (Google Maps)


















30 May 2015

What would you do if you weren't afraid?

Every day, when I'm walking home from work (be it work work, or working on projects in the lab where I'm one of the lab coordinators) I have the same discussion with myself. I go over where I've been, which with exception of hackathons has been right where I am, and I review my decision that at the end of next summer I'm moving to California. Where, exactly, I don't know-- right now, saying San Francisco works, but it might end up being Oakland or Berkeley or one of the many other specific places that make up what from my view point in Wisconsin just blends together into one big blurry mass.

I wonder if that's the way my family members a hundred (give or take a few) years ago thought about America when they boarded ships to come here from places like Ireland and Poland-- all of the things you've heard, and seen, and read all mixed up in your mind to make a vision of how you think things are there, even though you know it's just a dream. Things won't be just like that when you get there, there are a million things your mind takes for granted and a million more where your mind doesn't have the information it needs so it fills in the blanks from your memories and your hopes and your dreams and your fears. Your mind takes everything you've read, and seen on TV, and every movie, and every song, and smooths out the rough edges and decides that now matter what that faraway place turns out to be, even if the streets aren't lined with gold, it's a better place for you now and in the future than where you are.

No, my ancestors did not have TV or movies, but work with me here, k?

It's not an easy decision to process. A year ago, around this same time, I was sleeping on the streets outside the building I'm sitting in right now. Which of course doesn't prove anything other than that the future remains a mystery.

----- 

I cannot claim success, yet, of my plan to be housing stable for a year-- the year isn't up. I haven't talked to my landlord about my lease renewal, because whenever I think about doing so the PTSD kicks in and I can't do it. I just can't talk to the guy. He's at my apartment building a couple of times a week doing landlord things-- he parks outside my window, and he's usually talking loud enough that I can hear him. I have to close my window.

A couple of times over the past few weeks, I've seen prospective tenants waiting outside in the parking lot waiting to meet with him, and he doesn't show up. Then there was the guy across the hall who moved out a couple of weeks ago-- he and landlord had a shouting match outside for more than 20 minutes. In my old 'hood in Milwaukee, there would have been gun shots by minute 15 so perhaps I shouldn't be complaining-- but damn, who runs a business like that?

I'm trying to work up the courage to send  landlord a letter via certified mail (so he can't later say that I never talked to him about it) asking for two things. First, that he either interact with me via email or on paper, and not over the phone. Dude triggers my PTSD in person and on the phone, and I hate that he does, and I really hate the idea of playing the ADA accommodations card here-- but I'm losing sleep over this as August (and the end of my current lease) approach. Second, I'm going to ask him if he's going to renew my apartment lease, or not. Yes or no. If it's no, then I can go find a new place to live. I actually want to stay where I am. It's a really good place to live, minus the landlord.

-----

I was at the VA yesterday to get my medication levels checked. I'm on a low twice daily dose of venlafaxine, and a low dose of prazosin once a night before bed-- a lot less meds, and a lot lower doses, than a year ago. I have a new psychiatrist, who is actually not a psychiatrist but a pharmacist trained to handle psych meds, and I'm trying to get started with a new therapist, who I'm told is a psychology intern.

I can deal with the pharmacist. Operationally speaking she's no different than the psychiatrists-- she hands out prescriptions. It bothers me, and I'm not sure just why, that instead of a LCSW (or someone with similar credentials) the referral I got to the mental health clinic got me to an intern. I can trust the VA, right? Except.I don't, really. Not after what they did (really, didn't do) before, during, and after the times I was homeless. As much as I try not to let emotions rule, I'm still angry about all of that. It's hard for me to trust anyone to start with, and at the end of the day I think I have good reason to distrust-- but it can make life pretty not fun.

I had to jump through hoops to get an appointment with Ms. Intern. She has, to her credit, been calling me and leaving voicemails (in the morning, when I'm asleep) but I haven't wanted to call back. At the VA yesterday I tried to get an appointment made, but she wasn't there and she "does her own appointments". It took some convincing before the front desk staff would get an appointment request done for me (not a referral-- an appointment).  Money talks, bullshit walks. I still don't have an actual appointment. 

And, I need an actual appointment. I can't help feeling like since I'm not living on the street and I'm working and I'm in school that the VA thinks I'm just fine. The memories and images and smells and feelings from the Desert are all still there, as are the memories and images and smells and feelings of my life since I came back from the Desert-- I'm better at managing them than I used to be, much better in some ways, but it's a battle I fight every day.

I'm pushing my limits, lately-- I'm working another job, actually writing software and getting paid for doing so. I absolutely love it even if it's student (and not rockstar) money per hour. It is more time that I'm at work, and while I can more or less set my own hours I still have to follow them. It's been a couple of weeks doing this now, and I can feel it. Work is work and it uses energy even when it is fun.

Which brings me back to the idea of moving to California, where I am going to make a living for myself writing software. I'm looking at the next year of being a developer as being an internship. I'm trying to learn everything I can about modern software development, which I'm also doing a lot of on my own using many of the products and ideas I've picked up from hackathons. The Desert will follow me to the desert, just as it has followed me everywhere else-- so I'm using this year to learn not only bolster my hacking skills and education but my living-as-a-person skills.

There are a million and one things that I wish I could have figured out and lined up before I head out for California next year. I won't have anywhere close to all of the questions I have resolved before leaving, and my daily conversation with myself revolves around the idea of not having all of the answers being ok.

-----

BTW: the phrase "What would you do if you weren't afraid?" was posted all over at a Facebook hackathon, which was the first-ever hackathon I participated in. At the time I was living in my car, which was parked in the parking structure outside the building.