Showing posts with label professional. Show all posts
Showing posts with label professional. Show all posts

Tuesday, April 08, 2014

In The Beginning



In the beginning, there was a television. To the television was attached a Tandy TRS-80 CoCo. Then he said, let there be code. And there was code, and it was in BASIC. He was a child and found the fact that he could make a computer do things to be really cool.

As a teenager, the internet was laid open to him. HTML was discovered and there were many horrible mistakes made, including the dreaded animated gifs of flaming skulls and spinning things. The land was known as GeoCities, and it was eventually cast into perdition for its sins.

Then was Java made known unto him, and, though he tried, he found it confusing. This was the first age of Java, so he was not alone in this.

Lo then did he graduate high school and make his way to college in an effort to learn to do this shit properly.

There did he learn of many things – Pascal and Prolog, C and C++, Scheme and Assembly, Socket programming, the creation of data packets, and stack traces among many other skills and pieces of arcane lore.

He paid the campus ferryman with his toils as a sysadmin where he applied logic to a place of chaos known as a non-profit. All the while, using his position as an excuse to do things programmatically so as not to have to run around the hilltop known as The Ridges as often.

Then did he return to Java, and he found it…okay. After all, with a background in object oriented programming, data structures, and the like, Java now made much more sense.

Upon his path, however, he decided that Java was not the right tool for him, so he endeavored to learn C#. Additionally, in order to wipe away, or at least atone for, his past sins of using Perl, he also learned Ruby to an extent that would allow himself to get into (and hopefully out of) trouble on occasion.

He walked the paths of desktop development and eventually began to work in order to master the arts of web development as well using the MVC framework. So, then, did his past of using HTML and CSS come back to him (though, thankfully, the flaming skulls and spinning things did not), and that is where he stands as of this day.

Current Mood - Tired
Current Music - Shades Apart - Stranger By The Day

Thursday, February 06, 2014

My Take on Professional Codes of Conduct at Conferences


 

Preface: Please keep in mind that I am not trivializing sexual harassment or sexual assault. I have loved people who have been victims of sexual harassment, sexual assault and even rape. I myself have been a victim of sexual harassment and sexual assault.

I am offering an open, honest opinion from someone who has not only the right to an opinion as a person, but a sense of perspective as the victim of and friend of victims of sexual harassment/assault. You are allowed to agree or disagree with me as your conscience so dictates.

 

Recently, there’s been a lot of push to force software development conferences to have a code of conduct.

Honestly, any code of conduct that could be adopted for a professional conference could be limited to “Be a professional” or “Don’t be an ass”. We’re all supposed to be there to learn new things, maybe to meet new people, see old friends, and generally grow as professionals and individuals (male, female, gay, straight, bi, black, white, red, yellow, green, polka dotted and everything in between).

A lot of what sparked off the recent debate was an incident that happened at a regional conference a year or so ago (and I will admit was completely unacceptable. In fact, it was horrifying, honestly).

However, a conference code of conduct wouldn’t have done anything to prevent the incident for a few reasons:

 

1) It only came to light *months* after it happened (if you don’t say anything, nothing can be done by the organizers. I know some of the organizers and you’d be hard pressed to find a better, more caring group of people. If they had known, they would have done what they could.).

2)It happened before the conference even started, and not at the venue (it occurred at a bar at the resort the conference was held).

3) Having a code of conduct doesn't stop people from doing bad things. People stepping in and saying something while it happens or before it has a chance to happen does.

 

Having a Code of Conduct that prohibits unprofessional behavior at a professional venue is the conference version of security theater. The only thing it does is make people “feel” safer (and that’s, honestly, a disservice, because *life* isn’t safe and we need to be aware of that. It lets us better prepare for when things do go wrong – and given enough time, chances are something will happen to all of us).

It’s the equivalent of a store having a sign up that says “Don’t steal stuff or we’ll call the cops.” It should be common sense and, code of conduct or not, most conference staff that I have known will deal with any problems that arise.

 

Is there a solution?

 

Yes, well more or less, but like most real solutions, it’s not easy. The best solution is to be responsible for ourselves, to be decent people, and to look out for each other.

That last item is the big one. So many people now “don’t want to get involved” when they see something bad happening. There are a lot of reasons for this – Sometimes people don’t feel like their stepping in will solve anything. Sometimes they are afraid to say anything. Some of them even think that someone in a position of power should be taking care of it.

I have news for you: You need to swallow your fear and speak up when you see it happening anyway. It’s your duty as a member of society to help each other and that includes stepping in and asking if there’s a problem if something looks fishy.

We’ve become far too isolationist as individuals and have become conditioned to “let someone else deal with it”. That needs to change.

I’m not saying to lynch someone you see doing something questionable. Step in, make sure things are okay and then respond appropriately.

Yes, I’m a fairly large (some may say frightening looking) guy. Yes, I’ve been a victim of harassment and assault. No, I don’t think a Code of Conduct will change anything. Changing ourselves will. The demands for a Code of Conduct are just another cry to make it someone else's problem.

I do my part. If I see something “off”, I see if there is a problem and work to resolve it. I ask that others do the same. It’s the only way things will get better.

 

Current mood: contemplative

Current music: Coldplay – Charlie Brown

 

Monday, May 20, 2013

Your Code Sucks


 
I’ve seen a few people that I know berate people for the quality of their code and say things like they should just go and deliver pizzas.

You aren’t your code. Code is an expression of the skill, mindset, and situation facing the person who wrote it at the moment it’s made. Nothing more. In fact, it may be the chaining together of those factors from several people as the code is maintained.

There may be things about the situation that you don’t know. Maybe the person was under insane time constraints. Maybe they were thrown into a technology they had no experience with. Hell, maybe they were just having a bad day.

You may not like maintaining the code – I know I don’t, but I try not to berate the person doing it because I don’t know what lead there. (If I know the person in question and know that they just don’t care, that’s a different story)

There are a couple of appropriate responses to “your code sucks”.

  • Where can I improve?
  • Yes, it sucks. So does everyone else’s. I’m working to improve. Are you?

Improvement is the important part.

Yes, my code sucks. It always will, but it gets better every day.

Does yours?
 

Current mood – tired
Current music – 10,000 Maniacs – Candy Everybody Wants

Tuesday, April 16, 2013

I'm Not an Expert


 
I’m not an expert. On anything, really.

Don’t get me wrong. There are things that I’m good at, but I wouldn’t call myself an expert on them.

Part of the reason that I don’t consider myself an expert on anything is that I’ve done so many varied things. I’ve never settled into just one area of development (or anything else).

I’ve had a lot of hobbies, interests and jobs that range from martial arts, to carpentry, blacksmithing, gardening, cooking, and (obviously) software development (among many other things).

That kind of spread isn’t exactly the sort of thing that screams “I’m the greatest person in the world at one thing.” It does, however, lead to being able to look at problems from a lot of different angles and helps you come up with a solution to something you may have never seen before.

I sometimes get asked what my specialty is by people who won’t take “I don’t know” for an answer, and the only thing I can think to say is that I’ve learned to ask questions that get me the answers that I need.

I may not know a thing, but I can generally figure out a way to find the answer.

I suppose that you could say people like me specialize in being generalists, but I think we just suffer from a combination of ADD and having to take on multiple roles. Somehow, it works out, though.

Current mood: thoughtful
Current music: Goo Goo Dolls – Give a Little Bit

Sunday, December 30, 2012

Motivation


It’s generally really easy for me to keep going if I’ve already got a bit of momentum, but if things have derailed me and caused me to focus elsewhere, Newton’s First Law decides that it also applies to motivation and proceeds to kick my backside.

Translation – if I stop, it takes real work to get going again.

It’s also fair to say that, for me at least, large tasks are intimidating, but breaking them into smaller chunks makes them more manageable because it lets me just consider the current step and leave subsequent steps for a little later.

Big = difficult. Little = easier. Makes sense, right? Less stuff, less to be overwhelmed by.

Or, to paraphrase my sifu a bit “Concentrate on now right now. Later will come when it is time.”

A few years ago, I found a way to motivate myself when learning something new from a book or video as well as when working on projects. Thankfully it plays into the fact that I’m a big fan of marker boards (I have several in my office to help keep myself organized and to brainstorm) so it doesn’t take any additional expense on my part.

I write the name of the book or video series on the marker board and then put down the chapter or video numbers. As I work through it, I erase the numbers for the chapters that I’ve covered.

 
This does two things:

First, it lets me keep track of where I am. This is especially helpful if I’m doing a video series or a web-based lesson plan.

Second, it lets me see that I have actually been making progress so I don’t get lost in the feeling that I’m never going to get anywhere in what I’m doing (I’m pretty sure that I’m not the only one that has this problem. It’s downright overwhelming to look at how much you have to learn, and every time you learn something, it shows you other things that you need to learn).

Some people will prefer to strike through the numbers or put a check mark next to them after they’ve finished, but I prefer to erase for one very simple reason – it lets me actually SEE the list of things I need to do shrink. If the numbers are still there, the size of the task never visually changes so my brain still says “Hey, there’s still this daunting list of things that we have to do.”

If I erase the numbers, my brain goes “Wow. We’re making progress! Maybe we can do this thing after all.”

Yes, it’s a stupid psychological trick, but in my case it works.

I guess that means it’s not so stupid after all…

 
Current mood: undecided
Current music: Adam and the Ants – Room at the Top

Saturday, October 08, 2011

 
When To Say No.

A lot of people that I’ve known, including clients and a previous boss, have been under the impression that we as developers (or sysadmins, or whatever else) are to do what the client (internal or external) wants. Period. They think that this is the reason why we are employed. This isn’t really true.

My old boss’s argument was that we were only a cost center and not the ones generating the revenue. This is an extremely short sighted view to take.

Our job, is to give the client what they NEED in order to do their job and for their company (and ours) to make money. There is a very large difference.

One thing we have to ask ourselves on virtually every feature of a program and even on every project is “why?”

Why are we doing this?
Does it fulfill a business need?
Does it make the company money?
Does it save the company money?
Does it make the life of people at the business easier so that they can do one of the above more effectively?

If it doesn’t fill some need, then why are we doing it? Most of the developers that I know don’t want to work on a system that nobody is really going to use, and adding features that make no sense only increases the chance of bugs in the software as well as increases the development time.

For example, say a client commissions a piece of software and one of the features, after all is said and done costs $10,000, will the value that they derive from that feature be greater than the cost? If the answer is no, then why (other than the $10,000 going into your company’s bank account) would you do it? Sure, you can keep your mouth shut and pocket the check, but chances are that the reputation may well catch up with you down the road.

Projects that come in on time and under budget tend to get you more projects. Projects that overrun on the budget and/or time don’t.

The problem is in convincing the client that they don’t need the feature (which I generally call “kitchen sink features” and a lot of people call gold plating). Sometimes the client doesn’t want to let go of a feature because they have a checklist that they want to fulfill for bragging rights/marketing material. Sometimes it’s because they don’t want to let go of *anything* and sometimes there’s some other reason.

If it turns out that you were wrong about them not needing the feature, then drop the argument and build the feature. If, however, you can deliver a better product (less bug prone, easier to maintain, etc) and do it faster without an unneeded feature, then you may want to make a business case for doing exactly that.

I’ll admit that it’s extremely difficult to make a business case against an emotional response (in this case, the desire for more more more), but it can be done.

I had a discussion with Jim Holmes on this topic at Stir Trek back in May and he had an interesting way to take care of the issue. In fact, I approve of it so wholeheartedly that it earns my Sneaky Evil Bastard Award.

He had a client that wanted far more functionality than could be delivered in the time and budget that was allocated to the project and, predictably, the client didn’t want to let go of any functionality, claiming it was all equally important.

Jim’s solution was to target one of the parts he knew they REALLY wanted as being impossible to complete given the resources since everything was equally important. Magically, the client changed their minds and decided that the unimportant functionality wasn’t vital after all, and they were able to finish the project within a reasonable time frame.

It’s funny how that works. =]

Failed projects are a bad thing. So are projects that nobody really uses. Don’t cave in to the pressure. Do the right thing when you can and work to the best of your ability. This isn’t a one-sided deal. Every piece of software involves a partnership between the craftsmen and the owners and that requires give and take from both sides. If you approach it that way, you frequently get better results.

Current Mood: thoughtful
Current Music: Jimmy Eat World – The Middle

Saturday, September 11, 2010

Equal Rights

Tonight, something that I believe strongly in came out in conversation. It started with Jim Holmes tweeting regarding an article written about another developer that I follow and have chatted with in the past:

“Disagree with Women-Only anything in IT. Why put up more walls? #fail RT @RWW Women-Only Programming Classes http://rww.to/aU9kme


I happen to agree strongly with this, and said so. One of the devs that follows me, however, was of a different opinion and tried to justify the opinion, only to be shot down not only by Jim, but by me and even by my girlfriend, Karyl.

He went through a number of arguments, trying very hard to find something, anything, that would validate his claim and basically ignored anything that was used to counter him. Some of them, and my more lengthy responses (which, naturally, would not fit on twitter) are here.

“In this instance, I can understand it. The men are the main deterrent to potential female programmers. Plus, then they can focus on the material rather than deflecting awkward advances the whole time.”


I disagree. The deterrent to potential female programmers are the potential female programmers themselves. Women are not the only people that get hit on in college or while trying to learn or work. The number of classes that I was in where female classmates were trying to get me to go out on dates with them was rather high and I still managed to do all of my work. Besides which, most of the women in my CS classes (with a few exceptions) were under the impression that anyone who spoke to them was trying to hit on them and that really wasn’t the case.

From my personal experience, the women in the other engineering disciplines tended to be more driven than the ones in CS and were a lot more fun. There were more girls that dropped out of the CS program because it wasn’t “fun” or it was “hard” than because people were hitting on them (In fact, I can’t think of any of the girls I knew in those classes that stopped doing it for that reason).

“So, you're saying you don't think women should be allowed to have male-free anything?”


Are men allowed to have men only anything? No? Then there’s your answer. I believe in Equal rights. We are not getting into this “some people are more equal than others” mindset. That is a crutch and causes people to strive less if you constantly tell them “Oh, that’s okay. You’re a [x], we’ll lower the bar for you.”

Screw that. I want a professional in *any* profession to be held to the same standards as any other professional in that profession regardless of gender, skin color, or any of the rest of it.

To which I got the response of asking me how many men I’ve known who have been raped.

Bad question. And this made me very glad he wasn’t in the same room with me. I have good impulse control, but rape is not a woman only issue and it is not something I take lightly (nor is abuse in general).

For the record, I’ve known two that I can think of. Men who are raped undergo the added stigma of nobody believing them because, of course, rape can’t happen to men. Ask Karyl about her friend who was raped and was accused of being the one who did it instead. It has literally ruined his life.

Add to this the fact that many domestic abuse shelters will not accept men (who can be, and more often than you would believe, are victims of domestic abuse) and you start to see why this is a hot button topic for me.

Rape is not funny. Rape is not something that should be used as an argument against equal rights. Rape is also not just something that happens to women. I’ve known women who have been molested and raped as well and I don’t find it funny from either end. In fact, the woman that I loved more than anything else in this world was raped so I think I have some insight into how absolutely fucking horrible it can be (no pun intended and strong language more than justified).

“I've never been in a situation where I felt uncomfortable because the group was dominated by women.”


I have. It was not really fun. I’ll tell you something else – that group of women was more openly sexist and offensive than I’ve ever seen a group of guys be around a woman.

I’m not excusing guys who try to coerce women into doing things against their will. That sort of thing is, in my opinion, inexcusable, but it is not limited to guys. It’s not excusable from anyone, male or female (and, trust me, it happens with both).

Jim, the other voice of sanity, stepped in stating that he didn’t buy the attitude that all male programmers did was make passes at female programmers (and I agree).

This prompted a rather predictable response by our new “friend”:

“I'm not saying we do. All I'm saying is that if that FEAR is keeping one woman out, and the fem-only class lets her in, its a win”


No. What is keeping that person out is their own fear, not reality. If you are uncomfortable learning around men, how will you feel when you get out into the real world and work on development teams which, nine times out of ten, contain men as well as potentially other women?

“I theorize that by becoming exceptional in their trade, the unease when dealing with men is lessened due to being capable devs”


You become exceptional through practice and work. That involves working with and around other people, including men. You do the work and learn from it. You also learn from the people around you. That’s how you get better at anything (not just software development).

“By that logic, a group of women is not capable of creating great programs?”


No, by that logic, people who are afraid and never strive are not capable of creating great things. Letting yourself be afraid of your very surroundings and letting that fear control you means that you will never do great things and, in fact, may not do anything at all.

Greatness is accomplished by carrying on in spite of your fears (or sometimes even because of them). Giving up and going home because they let the boogey men in their head control them never really got anyone anything.

Am I afraid sometimes? You better believe it. However, I do my best to work through it. Sometimes it works. Sometimes it doesn’t. But I’ll tell you that it’s better than letting what *might* happen rule my life.

You’ve got to try for yourself. Nobody else is going to do it for you, and even if they did, it wouldn’t mean nearly as much to you as it would if it was your own striving that got you there. Others can, and hopefully will, help you along your way, but you have to keep striving and push yourself to find your true boundaries. Then you have to work to break those boundaries.

I went on to explain why I have some of the views that I do – the fact that I’ve known women who were great and men who sucked (and the other way around), that I’ve taught and trained with martial artists of both sexes with various skills and skill levels, that I’ve known victims of domestic violence (both male and female) and that I don’t subscribe to the mindset of “men are evil and scary and need to go away” because that cheapens everyone’s accomplishments.

“My experience is that I'm an arrogant asshole, and I understand why a woman (or man) wouldn't want to be in a class with me.”


Finally something we can agree on. However, that’s a problem with you and not a problem with all men. All men aren’t like you (and for that I’m thankful).

In all honesty, folks, I don’t care if you’re a man or a woman. I don’t even care if you’re green and furry. I believe in equal rights, but that means equal responsibilities as well. If you want to bridge the [gender, racial, whatever] gap, stop using that thing as a crutch and strive. *That’s* the way to give people positive role models. Role models are created out of overcoming adversity.

You can’t create positive role models out of people that you let have an easier time than everyone else. Greatness is taken and achieved, not given and people need to realize that. It requires striving, not going easy on someone because they’re somehow different (whether real or only perceived). That only perpetuates the “I can’t do it because…” mentality.

"Freedom is something that you need to actively acquire. It’s not something that’s given with no strings attached. To be free means to take responsibility, and to prepare yourself for what’s to come."
- Charles Beams, "Eureka Seven"
The same is true of equality. In fact, equality and freedom are often very close to one another.

Don't beg for things. Do it yourself or else you won't get anything.

Current mood: grumpy
Current music: Eve 6 – Inside Out


Monday, May 17, 2010


Mentorship and Community

If you ask some of the people who know me well, you’ll find out that I’m pretty big on community in both professional life and life in general. Personally, I view it as a way to help others, be helped, and be exposed to things that you might not otherwise consider.

Since I graduated from college, it has seemed like, professionally, I’ve been on my own. I’ve had friends, but it felt like I had no sense of professional community.

From my viewpoint, it’s like I’ve been trapped in some sort of insular bubble and the only direction and inspiration for “what do I learn next” has been stumbled upon by either bare necessity of a project I’ve been working on or through running across a mention of something in an article online. This is, to be honest, a Sisyphean task and, after a while, it starts to become discouraging.

I’ve missed the sense of community, knowledge sharing, and mentorship that I had while I was in the last couple of years of high school and throughout my time in college. Due to the exposure to other people and their ideas, my own ideas seemed to flow much more smoothly and I worried less about making mistakes because there was always someone that I could bounce ideas off of or go to for advice.

Professional development seems to be so much more difficult when you feel like you’re doing everything on your own. Add to that the fact that we are inherently social creatures, and being on your own can be nerve wracking.

Last night, I had a realization: I seem to have found that sense of community and mentorship again. And it’s on…Twitter?

Okay, to be fair, it’s in person as well since I get to see a lot of the people I talk to at least once a month, but the bulk of conversations occur over digital medium (twitter, email, and Live messenger primarily).

Roughly a year and a half ago, I found CONDG online when I went looking to see if there were any .NET developer’s groups nearby (I know. Novel idea.). Their most recently listed meeting at the time had a twitter link for the presenter, so having just gotten twitter a few weeks before, I clicked on the link and checked out their stream.

It just sort of went from there.

Now I’ve gone from basically knowing nobody in the field in this geographic area (since most of my college friends in CS were from other parts of the state/country/world) to knowing a number of them and feeling much more like a person again than I did a year or so ago.

It’s nice to be part of a group of people who help each other out, offer advice, chat, joke around and hang out together on occasion, and, when needed, give a kick in the ass to get you going again.

I’ve missed the camaraderie and exposure to new things and viewpoints. Maybe even more than I realized. It’s also nice to know that I’m not the only one that experiences self doubt about their abilities and worries about failure (Even if Phil Japikse does use it as an opportunity to make a good-natured joke at my expense heh).

I try to give back as well, but I sometimes worry that I take more than I give in return. I honestly hope that isn’t the case, because they’ve all been great, and I don’t want to put any of them out. I also don’t want to feel like I’m being a bother

What brought on this realization? The feedback from my last post, mostly sparked by the first commenter, who called me arrogant. I got tweets and emails from a number of people that I follow and have met with advice and constructive criticism on both the post, aspects of my professional development, and my resume as well as assuring me that the post was not, in fact, arrogant but generally fairly sensible.

I appreciate the support, advice and critiques. Some changes have already been made to the resume (paring down some of the older experience, breaking out skills by skill level, etc) and others are planned.

As a (rather large) added bonus, I’ve started to feel a lot more social over the last year. I view this as a great thing because I basically used to be a social butterfly (as difficult as that may be for some people to believe).

Thanks again, guys. You’ve been great and I hope that I am able to return the favor in at least some small way.

Current mood: humbled
Current music: Bush – Swallowed

Friday, May 14, 2010

What I Can Offer and What I’m Looking For

As I’ve said, I’m currently in the market for a jr-mid level .NET developer position in the Columbus, Ohio area. I really dislike being a one person shop. It always feels like I spend more time hunting for new projects than I spend doing them, and that’s just not my idea of an ideal situation.

That doesn’t really say much, though, so I thought I’d put down my wants in writing in order to not only get them out for others to see, but to get them straight in my own head.

First, however, I’ll briefly list some of the things I have to offer (this is by no means an exhaustive list).

What I bring to the table
  • I have several years of experience in writing code.
  • I excel at solving problems and enjoy doing so.
  • I can explain technical issues to non-technical people.
  • I have a professional, yet relaxed attitude.
  • I write well.
  • I am adept at gathering requirements.
  • I tend to be a calming influence on the people around me.
  • I learn new skills quickly.
  • I love writing software that makes a difference to the people who use it.

What I want in an employer (the bullet point edition)
  • A place where I can learn and grow.
  • A sane work/life balance.
  • A sane salary.
  • The ability to, preferably, work around good people who really know their stuff.
  • A relatively relaxed environment is a plus


Now, bullet points are great (or horrible, depending on who you ask), but we can get into a little more detail on my wants/needs.

A place where I can learn and grow –
I honestly want a place where I can expand and hone my skills as well as get back to using some skills that I feel have atrophied since I’ve been on my own, such as leadership and presentation skills.

One of the downsides to being independent is that you have a harder time setting aside time for professional development because you always feel like your time should be spent either doing work or finding more work. You also frequently have a really difficult time getting new perspectives on problem domains.

Sane work/life balance –
I don’t expect every day to be 9 to 5 because, let’s face it, that basically never happens. There are always the occasional crunch times at the end of projects or at the end of a cycle in the project, and that’s fine. The problem is when you are expected to work extended hours on a regular basis as a matter of course.

What I do want is for the occasional crunch times to be just that – occasional. I understand that I’ll find myself staying late or getting in early if there’s an emergency, to prep for a big presentation, a sprint at the end of a project, etc and that’s fine. What I don’t want is to be expected to work for 70+ hours a week.

I love writing software (and solving problems in general). I consider it fun, but there are other things in life that need to be taken care of as well.

Sane salary –
Basically, I want a salary I can live on decently. What I’d like to be paid depends on the position. I realize that lower level positions pay less than higher level positions, and sometimes you have to take a step backward in order to move forward.

If you’re concerned that I’m pricing myself out of a position, talk to me. We may be able to come to an agreement. I honestly want to make the jump, and some things are negotiable in order to make that happen. Besides, there’s been a fair amount of variation in the salary ranges of a lot of the companies I’ve talked to (though they tend to cluster in a reasonably narrow range, so I consider that a decent indication of what I can probably expect).

The ability to work around people who really know their stuff –
This sort of ties in with and extends learning and growing, but I thought it warranted its own point.

I find inspiration from working around other people. It may sound cheesy, but it’s true. Sometimes, just being around other people is enough to make me find novel solutions to problems. Additionally, I tend to learn a lot just from observing and listening to the people and things around me and am motivated by being around people that are better at things than I currently am.

This isn’t limited to just being around experts, though. I’m a firm believer that you can learn something from everyone, so being around other people in my field (and other fields) is a plus regardless of relative skill levels.

Relatively relaxed environment –
By relaxed, I don’t mean Hawaiian shirts and Nerf gun fights. Clothing wise, you’ll usually see me in khakis and a polo or button up shirt.

Relaxed, in this case, is more along the lines of non-hostile. I’ve seen a few companies where the people in charge seem to feel the need to berate and dehumanize the people that report to them (directly or indirectly).

In my personal opinion, that’s not a way to keep good people or to keep them motivated. The world may not be sunshine and roses every day, but you shouldn’t spend every day wondering when the (hopefully) figurative chair is going to fly at your head.

We tend to work better when we aren’t stressed unnecessarily, and since I want to work to the best of my abilities, it seems logical that I don’t want to be in a hostile environment.

Naturally, a discussion of this sort could go on for a considerable amount of time, but I think that covers most of the major points of what I have and what I want. If I sound like a person that would fit in with your organization or you know an organization that you think I would be a good fit for, please feel free to contact me.

Current mood: decent
Current music: Tom Petty - I Won't Back Down

Saturday, May 08, 2010


Stir Trek 2 – Brief Review, Musings, and Mayhem
(I apologize if this is a little long, but it covers a decent amount of ground)

Over the last couple of weeks, I’ve been averaging about 5 hours or so of sleep a night due to studying, interviews, preparing for interviews and trying to get actual work done. It seems like I’m never making any headway, because the list of things I need to take care of is growing so quickly lately (but, honestly, that’s largely a positive thing considering the items getting stored in my queue).

That said, I was really looking forward to attending Stir Trek, a local developer conference. Admittedly, I was also sort of dreading taking the time off because I knew I’d feel guilty for losing the day and a half from all of the tasks I currently have. However, I knew I both needed the break and would get more out of it than the time I lost by going.

I’m glad I did.

The night before, there was a geek dinner at the food court in Polaris Fashion Place with a pretty large turnout. It was a fun and pretty relaxed event, and a nice way to ease into my “weekend”.

The conference itself was great, and full of things that I now want to look into. I stuck mainly to the web dev and RIA tracks, but wandered over into the UX talk as well.

For those of you who are actually curious as to which talks I went to, here’s the rundown:


The presentation materials should be up on the presenters’ sites in the near future, so keep an eye out if any of the synopses sound interesting.

The last session was really a toss up between the ASP.NET talk and Bill Sempf’sEconomics of Cloud Computing”. I was kind of upset that I had to chose, but that happens sometimes.

Thankfully, I had a minute to stop in before Bill’s talk and say hello in person since we’ve been speaking over twitter and MSN so much lately. I dropped off a box of tea that I’d brought for him (yes, I got to tea bag the mighty Sempf heh) and I got a copy of his new book, C# All In One to read and review.

This means that my work queue just got a little longer, but I’m glad to do it for a number of reasons - among them because it’s always nice to have quality reference materials and the fact that Bill’s a good guy. He’s also one of the many people who have been helping me on my current job search, so the least I can do is lend a hand in return.

It also means that I get to play part of my former role as an editor again, which is kind of neat.

One of the other great things about the conference was that I got to meet a lot of people in person for the first time that I’d been talking to on twitter as well as meeting a large number of new people and getting to hang out with people that I’ve known in the community for varying amounts of time.

To top it off, I finally got to repay my debt to Phil Japikse by poking him with a stick (I threatened to do it months ago, but it’s the first time since then that I’ve seen him). I also got to heckle him good naturedly a little as well as help solve a minor technical problem. =]

I love Phil. He’s a decent guy and one of the many people I’ve met since I started going to CONDG who amaze me by how much they give back in the form of time, experience, inspiration and encouragement.

To be honest, I love pretty much all of the Columbus dev community that I’ve met so far. They’ve made me feel welcome since the first meeting I went to.

For the movie this year, we had Iron Man 2. All that needs to be said is that it was amazing and under “Badass” in the dictionary, it says “See: Tony Stark. See Also: Natasha Romanoff.”

Karyl and I were going to drop in on the geek dinner after the movie, but it appeared to be pretty crowded and we were both feeling a little overloaded (the conference had 600 people registered and it’s been a while since I’ve been in a crowd of that size for that long. Add on the stress of the last few weeks, and I basically just wanted to wind down gracefully before driving out of there).

I apologize to anyone who was hoping to hang out at the dinner. I had planned to attend; I just sort of reached my stimulus threshold. Hopefully we’ll get the chance to hang out another time.

Current mood: tired, but good
Current music: Aerosmith – Deuces Are Wild

Sunday, May 02, 2010


I Have Email Again!

If you emailed me in the last two weeks and haven’t gotten a response, I apologize profusely, because I didn’t get it. I had to switch over to my gmail account because my domain email was down.

If you tried to reach me and haven’t gotten a response, please, email me again and I will do my level best to respond with all due haste.

My (now former) hosting company was great when I first signed on with them a number of years ago. For the last 6 months or so, however, service has been going downhill.

This culminated in my email going totally down about two weeks ago after sporadic periods of uptime for about a week before that as well as their servers getting hacked (again), causing my site to be defaced.

To make matters worse, they were basically ignoring any and all trouble reports, so I was stuck without my main email, which I had been using up to that point during my job search.

Not exactly the best time for your email to take a dive.

About a week ago, I changed hosting providers, and taking the advice of Jeff Blankenberg, went with Crystal Tech.

Over that week, I’ve made more phone calls and written more emails to the two companies in question than I care to think about. The transfer process was, to say the least, not exactly smooth, but it’s finally over (I hope). On the upside, I can say that Crystal Tech’s phone support is both polite and helpful, which is always nice.

Hopefully their service is just as good as their support and their data center doesn’t explode.

Current mood: tired
Current music: Jimmy Eat World – Bleed American

Saturday, February 06, 2010


It’s not distracting. I’m just a freak.

January’s CONDG meeting featured David Giard (DavidGiard) speaking about Microsoft’s Managed Extensibility Framework (MEF).

The technology looks interesting and I may have to look into it when I have some free time, but it’s not the only thing during the presentation that caught my eye. As stupid as it may sound, one of the things that got my attention was that, in his code samples, many of his variables were declared as var instead of using explicit type declaration.

I’d looked at non explicit type declaration before and had decided that there was no real benefit to it and that its main impact was to decrease readability. However, seeing it used rather liberally in David’s code, I thought I might want to take another look.

The MSDN documentation still left me with my original thought on the subject, so, since I follow people who almost certainly know more on the subject than I do, I turned to twitter.

The conclusion that was arrived at regarding the matter was that they were useful when using LINQ, but tended to hamper readability and introduced some ambiguity into the code that the complier might not always sort out the way you want it to otherwise.

The really neat part of the twitter exchange was that David himself ended up chiming in as well because he still wasn’t sold on it either and was wondering much the same thing that I was, having run into it in a code review that day (a few days after his presentation).

So, on the upside, at least I wasn’t the only one who thinks about/isn’t sure about this sort of thing. I consider this a positive thing because I always feel like such a noob no matter how much I learn (I’ll get to that a little later).

David did, however, have another concern as well – that his code examples were distracting attention from what he was trying to introduce people to. In all honesty, since I said I started thinking about it due to his presentation, it was a legitimate concern.

I had to assure him that it didn’t distract from his presentation, but, rather that the problem was with me (I tend to jokingly end that statement with “because I’m a freak”).

The fact is that I tend to notice a *lot* of things and retain, at least for a while, more than a little of it. This is especially true when I’m someplace where I’m already trying to pay attention.

To be honest, I used to retain almost *everything* that I ran across before I started dealing with certain stressors that tend to divert my attention more often than I’d like (this will, hopefully, change here before too long as I don’t like the way said stressors are affecting me). Granted, I tend to have problems when I’m overloaded, and one of the first things to go is my ability to remember names of people I’ve just met (faces I generally have nailed, but names are another matter, so if I forget your name, it’s not an insult).

Now, to return briefly to the fact that I always feel like a noob.

The CONDG meetings now have a short talk after the main presentation, and January’s was presented by Leon Gersing (fallenrogue), the subject of which was change.

The talk itself was very good and, with the things going on at the moment seemed rather like a cosmic clue-by-four, but the pertinent part of the talk for this entry is the fact that some of us feel like we never know enough and we’re never ready.

I hung my head and raised my hand in the back of the room, getting called out good-naturedly by Leon for it. heh

Sometimes I have to slap myself and tell myself that I’ll never know everything (I hate not knowing something - as people who know me well can attest) and that I have to just start on the project and work out the rest of the problems as they come up.

Part of the problem, I think, is that I know far too many people that know *way* more than I do, so I always feel like I'm playing catch-up. Not that being around very smart, knowledgeable people is a problem, just that I always feel so behind by comparison. =]

Once I get into the groove, I don’t tend to sweat it, but the initial uncertainty (and, at times, insecurity) drives me up the wall. It even occasionally makes me want to hide under my bed because I always feel like everyone *else* knows this stuff and I’m the only clueless one even though I know that isn’t true (and, furthermore, I know that most people tend to make this crap up as they go along while trying to look all knowing).

You know that famous interview question of “What’s your greatest weakness?” That’s mine, though I usually phrase it that I sometimes worry about the details too much, because that really is the long and the short of it (plus it has the bonus that, unlike putting it the other way, it doesn’t make me sound neurotic lol).

Current mood: tired but caffeinated
Current music: Tonic - Open Up Your Eyes

Thursday, November 05, 2009


Presentations and Public Speaking.

October’s Central Ohio .NET Developers’ Group meeting was a series of “lightning talks” (15 minute presentations) instead of a single 90-120 minute presentation.

It was an interesting change of pace and, on the whole, went pretty smoothly. Granted, there were a few small hitches with changing between 6 laptops and speakers, but that’s to be expected and the problems were really incredibly minor.

I mentioned the meeting a couple of posts ago, so that’s all I’m really going to say about the meeting itself. The reason I’m doing this particular post is because of the presenter that I mentioned wanting to give some additional feedback to.

Unfortunately, I didn’t get a chance to talk with him directly. However, I started thinking that this topic might be important enough to generalize and make a blog post out of because so many of us have problems with public speaking and giving presentations.

As always, please keep in mind the words of Baz Luhrmann: “The long term benefits of sunscreen have been proved by scientists, whereas the rest of my advice has no basis more reliable than my own meandering experience.

“I will dispense this advice now.”


First off, relax.

I know that’s easier said than done. Public speaking makes a lot, perhaps even most, of us nervous (myself included even though I’ve had to do it before).

There’s not a whole lot that’s more nerve wracking than being the only person at the front of a crowd and knowing that everyone is looking at *you*. It doesn’t matter if it’s a presentation to the directors of your org, a political campaign, or a talk that you’re giving to a group of your peers. It’s always stressful.

Just remember that we’re not going to bite. Especially if it’s a users’ group or some other set of your peers that you’re speaking to. After all, we came there to listen to you, so why would we want to waste your time and ours by sitting there and heckling you (though we may occasionally joke along with you)?

For my part, I’ve done drama, had to represent the magazine I worked for at a conference (both the day of with the crowd and the night before at the dinner for the presenters) and have had to give more presentations for organization directors and management than I care to think about. Thankfully, I haven’t had to deal with being in a political campaign, but I’ve known plenty of people who have.

Even with that experience and knowing that mistakes aren’t the end of the world, I still get a serious case of butterflies and wonder how things are going to go (not to mention wondering why people are listening to *me* of all people). However, like most of the other speakers I know, I just try to make the best of it and somehow it all tends to work out fairly well.

How you relax is up to you. If picturing the audience in their underwear works for you, go for it. I’m not sure I’d want to do that with some of the groups I’ve talked to, but to each their own. Just take a breath, calm down, and be prepared to laugh off minor technical difficulties =]


Second - tailor your talk not only to the subject, but also to the group and allotted time.

Andrew, the software developer who gave the lightning talk last month that cause me to write what has become a novel of a blog post, chose to speak about Test Driven Development, a subject which I am quite interested in, but haven’t had a chance to dig into on my own yet.

He opened by saying that he was giving a longer version of the talk this month (November) and had just shortened it to fit in the 15 minutes allotted for the lightning talk. This was a pretty big mistake.

You wouldn’t give the same talk to a group of (largely) non-technical managers and directors that you would to a group of people who are going to be using and/or implementing the technology.

By the same token, there’s a lot of difference between how you structure a 15 minute talk and how you structure the same talk to last 60+ minutes. You can’t just cut off little pieces (or talk really really fast) and have it come out well – especially on a technical subject.

For a 1 hour talk, you can go into at least a little bit of depth, but in 15 minutes, you really have to follow the KISS mantra (and I don’t mean “They call me Dr Love”). In the case of Andrew’s presentation, the general outline of the talk should have probably looked something like the following:

1) Explain what Test Driven Development is
2) Explain why you want to use it
3a) Show a simple test or two by itself (probably no more complex than “Hello World” level stuff for this)
3b) Show the result of the test by itself (notably, probably a FAIL – we hope anyway)
4a) Show the code around the test
4b) Show the result of the test+code (We should hope that this one will PASS)


Instead of the above, in the interest of shoehorning what he had been designing as an hour long talk into 15 minutes, Andrew basically skimped on 1, killed 2-3, and did 4a&b with examples that were far too complex for the time allowed (or for an introduction level presentation, really).

In fact, he spent most of his presentation time mucking around with SQL and SQL Server as well as fighting with the web page he was using as an example. While this may have been alright for a longer presentation (depending on how he did things, but even then I would have went the KISS route), it really didn’t work for a 15 minute presentation.

In all honesty, he could have completely cut out the SQL and website and, instead, just written a few simple functions to show how to write tests for code and what the results should look like even in the longer presentation.

The end result was that most of the people in the room were looking at each other and wondering what was going on.

This could have been greatly alleviated if not eliminated altogether by doing the last thing I’m going to cover here.


Third – Rehearse.

You really need to do a number of dry runs of your presentation to make sure that you have the kinks worked out of the technical aspects, can make it fit reasonably into the time allotted, and actually know what you’re supposed to be saying/doing next.

Ideally, you would do your presentation a few times by yourself with all of your equipment and then, once you think you have it down, grab a few friends or colleagues and try it out on them as a sort of dress rehearsal, eliciting feedback before you give the “real” presentation.

It’s amazing how many problems can be prevented or corrected by just going over a presentation a couple of times. The major one, apart from timing issues, is that other people can point out things which aren’t immediately obvious to you such as parts of a presentation that may be confusing to others while they sound perfectly reasonable to you.

Think of it as a sort of peer review for your presentation instead of for your code. It’s the same idea, really.

So, having said all of that, it really boils down to three things – relax, be prepared (including being prepared to answer questions), and try to have a little fun with it. It will work better for you and your audience will thank you.

Current mood: Not bad =]
Current music: Depeche Mode – Everything Counts [Live]