You are currently browsing the archives for the Web category


Working your network

I presented a session on freelancing at Codestock 2012 – there were actually quite a few of them (4, I think).  I’d wanted to see Michael French’s session, as he sat in on mine, gave me good feedback, and mentioned some areas of freelancing that I don’t discuss in mine (or certainly not enough) – cash flow and insurance. Alas, I didn’t get to see his, but I suspect it went well.

On to the topic of this post.  I got to recapping some of my talk to a smaller group of people in an open spaces segment, and the subject of “how do you find work” came up.  “Grow your network, work your network” was the crux of my answer, and someone rightly challenged me on what “work your network” actually *means*.  Good catch, and I wanted to outline some concrete examples of what you can do to “work your network”.

1.  Find someone in your network who’s better at X than you, and take them to lunch for a short tutorial on X to get you better.  This is one case where you’ll actually be spending time on a technical subject, but the goal is not specifically that.  Getting some one on one time with someone better than you in a tutorial/teacher scenario is generally good – you give them the ability to hone their presentation/explanation skills, and let them know you’re genuinely interested in topic X (you have to be sincere about the request and the topic).  You will learn something new, but also have deepened a connection with someone.  If/when they have a work referral, you’ll be closer to top of mind for that person.

2.  Go to user groups and actively mingle.  Invite friends to join you, or ask someone in your network what groups they go to that you don’t know about, and ask to join them during their next meeting.  Have that person introduce you to a few people there.  You’re actively growing your network, but also positioning your friend in their network as someone who is a connected person with fun/interesting/useful connections.  That means you have to be fun, interesting or useful to people at some point.  :)

3.  Take #1, but invite other people, and turn it in to a small group “lunch and learn” session.  “Lunch and learns” are often used inside companies, but doing some ad-hoc ones among small groups of people will associate you with that group as someone who makes things happen and brings people together.

4. Related to number 3, but don’t bother with having someone make a technical presentation – just invite a small group of people who you know but that you know don’t know each other directly.  Go to lunch – have a good time.  Again, your reputation in this group will become one of someone who knows people, has connections, and can mix with people of multiple backgrounds.

In any of these above, asking people to bring others you don’t know is probably a good idea, but you may want to hold off on that from day 1 if you’re on the shy/introverted side.  You can build up to that, and practice these skills with colleagues/friends first.

All of these sound like I’m trying to make you in to a socialite vs a technical worker, and … in some ways that’s true.  I have to assume that you already have some technical chops to be working as a freelancer already, or that you can get those chops quickly.  The problem many have, especially when first starting out, is finding projects. The primary way to get around that is to have a network of people who feel comfortable calling on you when they have work.  They’ll feel more comfortable knowing that you’re someone who will not embarrass them when they introduce you to people on their team or in their network.  That is probably the most key aspect that tech people sometimes forget or ignore.  Most people really really really don’t care if you have the best technical chops – in some cases they don’t really even want to be outshone, but they do need someone who can get the work done without causing them embarrassment.  Helping them meet their goals of work done while making them look good is paramount.

How many projects have you been on that failed because you didn’t know how to write to a file, talk to a database, send output to a browser or take input from a form?  I bet that number is 0.  Projects fail because of communication between client and dev, or amongst the team.  Likewise, people don’t necessarily hire you just because of your skill.  Indeed, they may keep someone on a project *despite* the person’s skills, because they have no choice in the short term.  In the long term, they’ll get rid of that person if they’re poisonous to the project/team, even if the replacement is less skilled.

In short, “working your network” involves being social with other people.  That may be a stretch outside your comfort zone – many developers like working with computers vs people.  However, the technical skills you have now with PHP, C#, Java, Ruby, Python, Perl, whatever… – those may change, or become irrelevant if you change industries.  Being comfortable talking to people in social situations is a skill that will never go out of fashion, and you can learn and practice this skill in controlled situations by creating social settings with your current network, and at the same time grow that network with new and interesting people.

I hope this helps give you some ideas about how to manage and grow your network.  Are you in violent disagreement with that I wrote above?  Let me know :)


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

Freelance to fulltime

NOTE – this is not autobiographical – I’m currently still a fulltime freelance/independent contractor and have immediate plans to make any changes in that status.

I’ve had a few friends and acquaintances recently go through periods of transition, shifting from contract and freelance work to something else.  In some cases the transition was voluntary, sometimes not.  I wanted to share some thoughts on what I’ve observed so far.

In more than a couple cases, friends looking out in to the job market – interviewing at companies and such – don’t have a good idea of the market rate for either their skills or the value they’d bring to a company.  To whatever extent possible, survey your friends/colleagues in an area with similar skills, get ballpark estimates from then about what they’re earning, and try to get them to indicate salary vs benefits/perks.  Money is a personal subject for many, and you may not get a full honest answer from someone.  Ask them to just give you a range.

If there’s hesitation or a privacy concern, rephrase the question a bit – “if I was to apply for a job doing XYZ at your company, what should I expect as a salary?”.  I don’t know too many people who would have a problem answering that – it allows them to give specifics without disclosing what they make personally, which may be higher than what they quote you based on other factors.  Knowing that most people would be making about $80k doing mid-career PHP or Python development at companies X, Y and Z will help you when talking to company K, assuming they are of similar size/region/industry, and you’ll feel more comfortable if/when the money question comes up during an interview.

In some cases, this question comes up very early on, primarily as a screening tactic by HR departments.  If they’re thinking $60k, but you’re thinking $150k, there’s no point in moving forward.  Unfortunately, most HR departments I’ve talked with over the years are a bit too cagey, and demand a number from you first vs just giving you a range they have in mind.  Bear in mind, if they have a range of $60-$75k, that doesn’t mean the company may not raise that range to meet you, but that usually won’t be a consideration until after a few interviews.

A freelance friend of mine recently landed his ‘dream job’ doing R&D work for a large company.  I was sad to see him leave the freelance world, but I knew for him it was for the best.  What worked for him?  Hard to say if it was any one thing, but he was fairly ‘plugged in’ to the community at large – he’s blogged in public for years, spoken at many conferences, published magazine articles, and contributed some notable open source code to projects.  Whether any of those specifically were factors in this particular job offer, I can’t say, and I’m not sure he could either.  In my view, they all contributed to his profile.  When new positions come open, they’re often floated by connections in personal networks first.  Having a strong personal network, and letting people in that network know you’re looking for new options, is a very useful tool, but also one which you can’t get overnight.

The other side of personal networks – if someone reaches out to you with an opportunity, *acknowledge* them.  I’m speaking from experience here.  When I reach out to someone with a project or job I think would be a good fit for them, and they simply ignore me… they’re not on my good list any more.  It’s not as if I hate them personally, but I won’t bother to go out of my way to spot opps or jobs I think would be beneficial for both parties.

This happens to me multiple times per year – I hear someone is looking for a new job, I forward some one or more opportunities, and *nothing* ever is responded to.  This behaviour is just *odd*, and possibly may help explain why person X may not be happy in their current job or may be continuing to look for IT work when the current IT market is pretty hot.  Few projects of mine have ever failed due to technical issues – many have failed or been derailed due to personality conflicts or communication problems. Bottom line – if someone is courteous enough to be thinking of you and your needs, reply to them acknowledging that you received the information.  Even if the position isn’t necessarily what you’d consider a good fit, replying is just good manners.

Another friend recently transitioned from part time contractor to full time employee.  After several years contracting for one department, he was offered an expanded role full time, which seems to be suiting him quite well.  This one is not something you can easily plan for, and in his case certainly took me by surprise.  Not because he’s not capable of the work, but I didn’t think the company was looking to expand their service offerings.  Maybe they weren’t until recently – who knows?  But an opportunity came along and he was ready to transition from freelance to full time.

Are you looking for a full-time gig?  What’s worked for you?  What have been the stumbling blocks?  Let me know!

Are you freelancing, or considering it?  I’ve got a web freelancer support group to help people who are getting started or looking to grow.


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

Lack of fundamentals in web programming education

Wasn’t sure what to name this entry, but have had a few discussions with some people over the past month or so about their experiences.  All of them were finishing up “web development” degree programs (under somewhat different nams) at institutions in the area, and all were talking about looking for jobs.

I was dismayed (but not necessarily shocked) at how little understanding they had about the basics trade skills that are necessary for most real world webdev work.  Now, I’m obviously passing my own judgement here, but bear with me.

Task/project breakdown – the idea of taking a project requirement and breaking it down in to written steps – whether inline documentation, external ‘requirements’ doc, or tracking in an issue database.  This was not something that any of these people indicated was covered in their classes or coursework.  Whether you’re working alone or on a team, this is a fundamental basic skill that is missing in most jr devs I meet – loading an editor and starting to code is the default mode.

Version control – none of the people I spoke with had any version control in their class work.  One knew *of* version control, but his internship mentor didn’t feel it was useful because there was just two of them working, and they could easily schedule time to edit the same files on an FTP server without stepping on each other’s changes.  I don’t expect someone to be an svn master or git guru – the specific technologies may change.  One company may use clearcase, another MS TFS, another git, and so on.  The nuances of each will be different, and the dynamics of the projects will be different.  But the core value of using version control, even on projects for yourself, isn’t even being mentioned in some of these courses.

Testing – this is going to be different based on the project, of course, but a ‘web degree program’ that doesn’t expose students to some testing tools – selenium being the one I’d default do – is doing a poor job of equipping these students to be proficient in their craft.  Put another way, students from a degree program that exposes them to testing concepts will produce better, more desirable/employable students.  However, if *no* programs do this, then the bar is uniformly low across the board.  Exposing students to the concept of unit testing their code – xUnit style – and understanding that code is more testable when it has fewer hard coded stuff in it – these are things that should be being taught.
Note that, excepting for a ref to selenium, I’m not really advocating a particular technology (and not really even in that case), but concepts.  The need for Android developers may be gone in 5 years (at least, Android as we know it know).  The need for “PHP5 developers” may be radically lower in 5 years.  The need for Ruby3 developers may be through the roof in 5 years, and there’s not even any degree programs *talking* about Ruby3, because it doesn’t exist yet.  The need for developers who understand testing and version control will definitely be strong in 5 years.  It was strong 10 years ago, although the tools were different.  It will be strong 10 years from now.

These universal lifelong skills that are *fundamental* to the practice of good software development are not seeming to be taught in software development courses at a college/university level.  Some programs will have an emphasis on data structure and algorithms – certainly nothing *wrong* with them – they’re universal truisms too.  But there seems to be an ignoring of the realities of day to day work.  And I’m not just talking about the 4 year ‘big league’ schools – local community colleges that traditionally have a more practical emphasis on ‘vocational skills’ are seemingly ignoring this.

I don’t remember any of these skills being in course descriptions 20 years ago in my university, and I’m not seeing much reference to the few colleges I searched about for recently, and certainly not getting this from talking to people about to graduate from “web developer” degree programs.  Is this your experience too?  Or am I just getting a statistically skewed sample?


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

ning user subscription service

I’ve been working with a local chap investigating the feasibility of adding paid user memberships to ning.com sites.  We’d settled on one model which will work for him, but is a bit manual.  I’ve got another approach in mind which would be fairly automatic.  Essentially it involves a service in the middle which sits between the ning system and an external billing service such as paypal or spreedly, and uses the APIs of each to manage account access.  If a user’s paid subscription status lapses, there’s an API call on ning which disables the account.

I used to have a ning site (actually, I think we’ve still got a small family one I’m paying for too) but have not done much with ning since 2006/2007.  They’ve changed their focus a lot since the very early days where they’d let you run your own PHP code on their servers, and have shifted to a more locked-down API approach.  There seems to be a small but loyal set of ning network managers, and it seems to me that paid monthly subscriptions is a service many ning network owners are looking for.

So… are you interested?  Drop me a line if so and you can be part of the first set of test users.


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

Dear consultant

Random emails from recruiters we don’t know – we’ve all gotten them at one point or another, but does anyone ever respond to these?

I just got this email. Names removed to protect… why am I protecting them? Nah – names aren’t that important.

Dear Consultant,
This is an excellent opportunity to join a winning team. Take your career to the next level and turn your interest into action. Apply Now! The only way to learn more is by taking the next step.

Job Title : PHP/ MYSQL Developer
Location : Washington DC
Duration : 6+ Months
Rate : $45/Hr on C2C

Process: Goal is a phone screen followed by a 16 hour guarantee

You had me at “dear consultant”.  I have a feeling that $45/hr in DC isn’t really all that hot of a rate.  They don’t seem to do any filtering at all – this certainly isn’t taking my career to any level I haven’t already been at.

Role: The new CTO inherited a Content Management System that is one of the products they sell. He has his team focused on enhancement and new architecture, but he needs someone to come in and fix/ troubleshoot the bugs of the old system.

So… they’ve got a mess on their hands, and the “CTO” needs a digital janitor.  For $45/hour.  Even though the existing team probably actually understands the current product/system/business much more than a green outsider would… somehow there’s enough of a need to fix bugs, and spending money on someone to ramp up from ground zero to learn the business and fix bugs is a better use of time than having the current people (who, let’s face it, probably *wrote* the damn bugs in the first place) fix the code.

Skills needed:

  • PHP/MySQL
  • Heavy troubleshooting/ de-bugging
  • Shell Scripting
  • Expression Engine v 1

http://expressionengine.com/

He really wants this because it is what it is built on

Sounds as good a reason as any, right?

This person needs to be able to work independently. Clearly this is not the most exciting work, but they have the ability to join a really cool team and do cool stuff if they do well.

So… they know it’s crap work, and if I agree to do a bunch of crap work, I may be able to join a really cool team (apparently too cool to maintain their own crap code). And if you do crap stuff well, apparently you’re good enough to do ‘cool’ stuff in the future (and then pass off your own crap code to another newbie 6 months from now).

Really – does ANYONE ever respond to these random recruiter emails?

UPDATE – I just got the same email from someone at a different company, except they didn’t have the editorial about “we know it’s not exciting work”. As corny as that was, it was actually a small spark of real humanity coming through.

I also know the job market is really hot for IT, and remember the dark days of 7-8 years ago when things were tougher. These same emails probably worked far more effectively than they do today, but they must still work *some* otherwise they wouldn’t be sent out like this, right?


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

indieconf – conference for web freelancers – november 19

indieconf – the conference for independent web professionals – is fast approaching.  This year indieconf is on Saturday, November 19, in Raleigh, NC, and it will be a full day of learning from and networking with other freelance and independent web people.  Designers, developers and everyone in between are welcome to join us!

This year sees some new speakers joining us – Michael Marshall, Laura Creekmore, Pepper Oldziey just to name a few, and some of our friends from year one are back for year two, including Patrick O’Keefe, Doug Foster, Neil Tortorella and many more.

We’ve got a couple more surprises to the schedule which aren’t announced yet, but don’t let that stop you from registering now.  :)

So… what is indieconf?  Some of you readers from last year may remember, but for those of you who don’t, here’s the quick backstory.

I’ve been a freelance web guy for the past 4 years, and I love tech conferences.  However, I got discouraged after going to some great conferences, but realizing that most of the info there didn’t really help me all that much.  Learning about new tech was great fun, but what I really needed was to understand how to write up better contracts, land better clients, deal with collections, and so on.  Now, there’s a lot of business networking groups that help deal with many of these issues, but most of those people there aren’t web people – they don’t know javascript from java – and I just never felt like I was making the most of those events.

From that frustration, indieconf was born as a conference that brings together web freelancers (programmers, designer, writers, etc.) who primarily work on the web ( you know who you are!) together with experts in legal, financial, accounting, marketing and business who *also* understood the web and worked with freelancers.  The combination last year was pretty good, and this year we’re looking to make it even better, based on learning from your feedback.

What are you waiting for?  Register today or learn more at indieconf.com.


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

virus scanning as a service – looking for feedback

I’m looking for feedback on a project idea.  This grew out of a project I did last year that involved a lot of user file uploads that are then downloadable by others.  Virus scanning needed to be part of the process, but I couldn’t find a good service out that that offered this.  I did find one, but they explicitly forbid commercial use of the service, which somewhat took it of the table.

So.. feedback please.  Have you ever needed a service like this?  Did you just roll your own, or perhaps just went without?


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

mind blowing security practice

Yeah, you read that right.

Kids, don’t try this sort of security in your own web apps.  This is reserved for high-end financial institutions only.


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

indieconf 2011 call for presenters

Our indieconf 2011 call for presenters is open.

indieconf is the conference for independent web professionals – whether you’re a developer, designer or someone in between, if you’re an independent freelancer or small agency, indieconf is for you.

What are we looking for?  Topics of direct or indirect interest to web freelancers – mobile development, server side tech, client side tech, workflow issues, client management topics, financial issues, legal issues, marketing, SEO and more!

indieconf will be held in Raleigh, NC on November 19, and we’ve got an early bird special of $99/ticket going on right now – get your ticket today! :)


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook

When Google controls the internet…

I’m not a google fanboy (although I do use a lot of gmail and picasa some) – I’m also more than a bit wary about the amount of info they control and manage about me and others. That said, I was reading up on SPDY this morning, and a curious thought struck me.

For those of you old enough to remember the late 90s and the ‘browser wars’, IE was becoming the dominant browser. I remember hearing a rumor that IE was given preferential treatment with IIS servers – meaning that if you used IE against an IIS server, you’d have a faster experience, and that connections from Netscape and others were intentionally throttled down. Again, just a rumor, and not one I could ever confirm. Even if it was *true*, in hindsight, my guess is that it probably wouldn’t have been intentional. Or, to whatever extent it was intentional, it would be from lack of testing (or caring about testing) against non IE browsers. That may be wishful rose-colored thinking on my part, but it’s all in the past now.

Google’s Chrome has been on an upswing the past year or so. It became my default browser for about a year, although I’m using Firefox 4 more often these days. Google’s been experimenting with SPDY – a new protocol intended to augment HTTP. That’s the benign pronouncement – it wouldn’t surprise me if they really would like it to supplant HTTP altogether, but I suspect that won’t ever happen 100%. The SPDY spec has a number of interesting improvements -

  • X-header ‘hints’ to tell the client other related resources (to avoid having to parse the entire document first)
  • HTTP Header compression – I think I tweeted this some time ago, but this thought hit me last year. Many HTTP header calls are moderately big, and many pages have dozens or hundreds of these. SPDY reduces HTTP headers by ~80%, which can make for a marked improvement on many larger pages.
  • Request prioritization – allows the client to indicate which resources should be loaded first

and many more.  (See the link above for more info).

The interesting thing to me was the difference between when MS owned the client and server experience (for sites that mattered to me) and now that Google does (for sites that matter to me).  MS seemed to go for more lock-in – pushing ActiveX as a browser technology, pushing IIS as the server of choice, etc.  Google, on the other hand, investigates, tests, and promotes new technology to reduce load times and HTTP overhead for the whole internet.

Granted, right now, the only company using SPDY is Google, but they’ve published their protocol and research, and I wouldn’t be surprised to see some mainstream webservers support SPDY in the next year or so.  If Firefox and/or Safari also support SPDY, we’ll see some radical speed changes which will benefit the entire internet in the form of faster sites.  In MS’ favor, I will point out that the beginnings of what became AJAX originated in IE5, and AJAX has been a game changer for the web industry certainly.  It’s just a bit sad that it seemed to happen in spite of MS rather than them proactively promoting an IE tech as a cross-platform solution.

One wonders if MS would even be able to pull off something like SPDY today.  10 years ago they *could* have, but didn’t seem to have the foresight or inclination to do so.


I'm currently working on a book for web freelancers, covering everything you need to know to get started or just get better. Want to stay updated? Sign up for my mailing list to get updates when the book is ready to be released!

Web Developer Freelancing Handbook



0.28592300415039