Wednesday, February 12, 2014

Morning Microwave Burrito

It's 2:05 AM and I'm eating a microwave burrito. I normally eat two of these at once, but I'm trying to be reasonable considering I should have been in bed two hours ago. I was hungry and didn't feel like sleeping. So now I'm eating a delicious burrito and blogging for the first time in 1.5 years.

Lots has changed in 1.5 years.

But this isn't the place to talk about what has changed- this is the place to talk about what's going through my head at two in the morning.

I got "encouraged to apply for a job" today. That means that there is an opening and that someone linked to that opening encouraged me to apply for it. This is always a very flattering experience, and given the respect that I have for the individual who encouraged me to apply, it was pretty cool.

The problem with being a developer about to graduate is that there are lots of viable jobs. You have to pick the one that is best for you. There are tons of factors to this- money, the tech stack, the experience you'll get, the people you'll work with, the potential for career growth, etc.

I already know where I want to end up when I graduate. But the future is a terribly long time, and I'm planning to do this whole software development thing for a long time. I can't just stop thinking about what I want to do when I grow up because I know the first place I want to work when I graduate. I could stay there for ten years and still have a good twenty plus years to work other places and develop other things. I suppose this is a longer way of saying that I want to make good career decisions but feel overwhelmed by that responsibility. I additionally feel a little bit overwhelmed by the need to balance my current financial needs with the chance to go do some original and exciting things. A lower paying job could yield more varied experience. It could also yield eating rice and beans for a few months until I graduate, and I'm really a little too fond of these burritos to accept that kind of fate.

So what do I want to do when I grow up? Well, I really like the idea of having customers. I really like writing software that makes a difference to someone. Not like, the whole meaningful difference you make in someone's life when things get sentimental and blah blah blah, but I do like having an impact. If I make a horribly mangled feature I'd like to have someone get mad at me. The only reason I want that is so people will really really like it when I make something elegant. I like the idea of my code affecting human beings.

I'd really like to do something that had a net positive impact on the world. One of the cool things about software is that you can work in nearly any industry you want. Everybody needs software these days. I'd like to do something that helps people. I'm not sure what that looks like yet, but I want to give it some thought. No Flappy Birds for me; I'd like to make things better.

Recently I've been thinking about growing up to be head of development somewhere. Mostly because I think the last head of development I worked with was such a rockstar. That guy just oozed good leadership. The company he works for is way better off for having him. He makes a big impact on pretty much all the developers who work there, including all the Summer interns they bring in. I think what I like about that human is that he has such a positive impact on the people around him. They write better software because he's in charge. I'd like to be qualified to do something like that one day. I'd like to have the experience and wisdom to be able to take a situation and make it better.

As a sidenote, I totally have a plan to make this work. Once I'm out of school (oh hallelujah) I'm going to hit the gym six times a week. I'll bike for 30 minutes a day (Or, you know, elliptical or jog if I'm feeling it). For those 30 minutes I'll read good books on sofftware development. That way I get awesome exercise and get to experience some pretty good ideas in the field. Sign me up for the two for one combo.

I would really like another burrito right about now.

So what software do you write? What software do people need right now? How do you effect a positive change (and yes, I'm pretty sure that's the correct spelling of effect right now) via some product you create and sell? I mean I could certainly go work for the church, but I'm not really feeling that career path right now. I could work in an educational setting (writing software for educational purposes), and maybe that'd fit the bill. I have trouble profiting off of education though, you know, since I've gotten all of mine for free. I think products that give people information and allows them to make good choices is a pretty good option- comes to mind. Maybe I can find or create something like that.

I mean, if you're going to spend 40 hours a week working on something, wouldn't you like to work on something that makes the world a better place? If you're going to painstakingly craft a highly specialized tool over the course of a few years, shouldn't that tool be used for good purposes? I understand that money is important (sure do), but I would like to feel good about making money doing something beneficial for everybody else.

I suppose most software isn't evil. Some of it is. I think most is pretty neutral. But I'd prefer brashly positive over neutral.

I don't know what that looks like yet. And I'm not sure what skill set I should really pursue right now to spec myself out to accomplish that. My current plan is a very solid and reliable foundation (hooray for being a Java developer), along with really solid engineering understanding and experience (I'll test my code even if nobody else will). Along the way I'll start building things for me using whatever new and fun technology is around. First up is a bug database with a Jersey backend and Angular front end. Then I'll have to publish a few Android apps this Summer. I have no idea if this is the optimal path for me. I could do more research to figure it out-- but there are about a bajillion unknowns so it's really hard to tell. This certainly isn't something to complain about. If I had a slightly better attitude right now I think that I could really celebrate because of that. Things keep changing, so there's a good chance that things will improve for you. Given a dynamic system, being a real agent that makes real decisions is a really good thing. Since things are constantly changing you constantly have chances to improve your situation. Sure, if you weren't able to make choices it wouldn't do you any good. But being able to choose in such a dynamic system gives you tons of opportunities. Fine, I'll be more cheerful about all this.

I never worried about saying too much online before. I do a little bit more now. I have a little more on the line- employment, a wife to take care of, all that good gravy. In the past it was a piece of cake. One thing that gives me comfort is the vast amount of information one can put out there. I mean, seriously, I don't care how dedicated you are to your job, you'd have to be pretty serious about stalking me to have read this far. And if I post like this every day for a year, there will be crazy amounts of text to read through. You could certainly automate that process, but what's the fun in that?

It's good to write again. I know full well that it is not high quality writing, but it's a pleasure to communicate. Not that there is an official recipient of this message. In fact, there's a high probability that no one will *ever* read it. But it feels good to me. It feels nice to say some things that are on my mind. It's something that I have missed a lot.

Things are good. School is honestly pretty good. I feel like I'm a better student now than I have ever been before. Sometimes I feel like I am not making any progress towards graduation at all, but I know it's coming. I have been way more diligent in my homework and studies than normal this semester. I have some cool classes. I've been loving my extra curricular activities. The ACM is going really well and seems to be making a positive impact in the department. I sure enjoy it. Work is a blast. I haven't had this much fun at work in a really long time. I'm implementing some outstanding feature requests we've had for a while. It feels fantastic to add functionality that wasn't there before. I love knowing that I make someone's tasks a little easier to do. Maybe all this fun of feeling like I contribute meaningfully to the success of the product will wear off one day, but for now I'm having a great time.

The future is pretty dang interesting. I have a few options. It's mildly terrifying to know that I can pick whichever option I want. There's a lot of comfort in that, though. Choosing our path is the way that it's supposed to be. It's really nice to have that luxury of choice right now. I need to cheer up and appreciate that more. Not everybody gets these opportunities.

As a happy reminder, I'm where I am now because of choices that I made in the past. Some of those choices were good, and some of those choices were bad. The important thing to remember is that where I am in a year will be directly influenced by the choices that I make between now and then. What choices will lead to the best outcomes? That depends on what I want those outcomes to be. Without defining a goal it is crazy hard to know which choices to take. Curse you, Cheshire Cat, for teaching us such a timeless truth.

It is sleep time. I would like to publicly congratulate myself on only eating one burrito tonight. Sometimes I eat microwave burritos on a plastic plate using some really fancy silver we inherited because all of our normal civilian forks are dirty. It's a mildly ironic situation- a very easy and unsophisticated meal delivered by the nicest stuff we have in the house. But I guess that's life sometimes. Everything doesn't always match up, but that's okay. You do the best you can and really enjoy the microwave burritos.