Engineer Shortage

Posted: March 1st, 2011 | Author: | Filed under: posts | Tags: , , | 2 Comments »

There’s been an increasing amount of conversation recently about how difficult it is for startups to find qualified engineers. And yet at the same time, recent graduates with strong engineering credentials are saying that they can’t find jobs.

What’s going on here?

(Let’s set aside those who aren’t looking to work for a startup. Nothing wrong with that – but the hiring process for corporations is governed more by the macroeconomic situation and waiting for executives to feel comfortable that the analysts on Wall Street are comfortable with increased hiring expenditures. I can’t provide much insight into that. But I can offer some thoughts for recent graduates who are chomping at the bit to get out there and put the skills that they’ve spent years honing to good use, and they’re hungry for any opportunity, especially at a startup where their contributions will actually move the needle.)

I think the immediate reaction is to try to attribute this apparently misalignment of supply and demand to some generalization that startups won’t hire recent graduates.

In December, Vivek Wadhwa wrote a post on TechCrunch, Shortage of Engineers or a Glut: No Simple Answer. The post made a lot of useful points and quoted some smart people (including a comment that I left on his blog).

After thinking about this again recently, I went back and read some of the comments on the post.

Most of the comments seemed to be along one of the following themes:

1) Schools don’t train me in what’s really being used in industry. All of the job requirements that I read ask for X years of experience with Y skill (that I don’t have). What is wrong with education?

2) Startups don’t just hire anyone. They are looking for engineers who have strong fundamental skills, can pick up new technologies and run with them, and are willing to tackle any problem.

There is truth in both of these themes.


School doesn’t teach me what I need to know for industry

Perhaps the Information Sciences and Technology program at Penn State was unique in this regard, but the Dean and professors would regularly get up in front of students and say something along the lines of, “Technology is an industry which requires lifelong learning. We will teach you how to learn. Then you can use that skill to learn what you need for your career.” Sure, we learned some useful things along with the theories, but it was always made clear to us that we shouldn’t expect the curriculum to teach us everything we would ever need for a career in technology.

Good thing, too. Because the vast majority of the skills that I use on a day-to-day basis in my COO/CTO role were things that I’ve learned myself.

One of the comments on the post spoke to this point: “I was shocked that so many of my classmates didn’t apply what they learned — about how to learn — to themselves. In the time between my CS degree and my first industry job, I’d taught myself version control, design patterns, unit tests, embedded systems programming, user interface design, and so on. It’s easy to get a good job when so many of my classmates thought that college was the last time they’d ever have to learn something!”

This is why so many companies look for candidates who contribute to Open Source. Because contributions aren’t something that you regularly do as a part of school or as a part of most jobs. Instead, it’s something you do on your own accord, and it demonstrates both initiative and the ability to pick up something and run with it.


Startups don’t hire just anyone

That’s true – they don’t. But it doesn’t mean that you aren’t already or can’t become the kind of person that they will hire.

I make this point in my comment on Vivek Wadhwa’s personal blog, that led to the subsequent TechCrunch article:

Just because engineers are graduating, or there are engineers on the bench with decades of experience, this doesn’t immediately solve the issue that a startup CTO faces in trying to staff their team. At the start, an entrepreneur is looking for a driven technologist who can come in and partner with them to translate their vision into reality. If you’re making hire #2 or beyond, you’re looking for specific needs – startups often don’t have the luxury to train someone into their technology stack and are looking for folks who can hit the ground running and get stuff done. As a result, simply having an engineering degree or decades of experience from BigCompany clearly does not make an engineer an immediate fit.

Try to find an engineer with the right experience and the ability to get stuff done — this is what entrepreneurs are struggling with and is what drives the entrepreneurs and investors to complain that there isn’t enough talent in the market.

Startups are looking to fulfill a need. There’s no leadership development program to train a pipeline of technologist for future needs three years away. Startups have a problem. They need to grow their product. Now. Faster. If you’re not the solution to that problem, you won’t get in.

So, become the solution.

Pick the area that you want to work in. Ruby on Rails web development? Great. Objective C iPhone development? Sounds good. Now start writing code. Show that you get stuff done (code on GitHub, contribute to open source, blog!). If you have experience already, find ways to make it relevant to the position that you’re looking for.

And to really get a gold star, don’t limit yourself to the one technology that you start with. If you’re doing Ruby on Rails development, it’s likely that you may need to do some basic systems administration on a Linux server to get your stack up and running. Embrace that opportunity as a chance to prove that you can do whatever it takes to get the job done. Same thing when you need to setup memcached or Redis or whatever additional technologies might come onto your radar. Because a startup will expect you to pickup new technologies, and to become productive rapidly.

Finally, you need to get in touch – I think this point is under-appreciated: startups don’t have big recruitment search budgets (or a lot of time) – if we can’t find you easily, we can’t hire you. Promote yourself. You are a brand. Figure out how to get found.


I sent some very similar advice to my summer development interns at the end of August. I closed with the comment that, if you put some time into really considering the skillets that you’ll need in the job that you want, and then really make an effort to build those skillets (and any supporting skillets on your own), and then do the extra work to publicize what you’re doing, you will be easily heads and shoulders above 90% of the other students you”re graduating with who could do the work, but won”t bother.

Much has been said about the Gen Y folks who are eager to get out there and start making a difference in the world. You don’t need anyone’s permission to go get started. What are you waiting for?

Improving WordPress Performance

Posted: May 5th, 2010 | Author: | Filed under: posts | Tags: , , , , , | 3 Comments »

Hopefully, this blog is now loading a bit faster for you. As I think about how an individual’s web presence is increasingly a major part of their personal brand, it’s obvious that how that web presence operates must play into how the personal brand is perceived. Would you hire a web developer if their blog falls apart in your browser? Or a designer who’s site looks like it went through the Geocity-izer? Of course not. So, as a technology executive, I felt that a slow loading blog probably wasn’t good evidence of my abilities and invested a little bit of time to cut down some of the bottlenecks… (The last string of posts have been business-focused, too – it was time for another technical post.)

So, for other who may be running into similar issues, here are the steps I did to increase the performance of WordPress for my site:


Understand the Problem

First, you need to understand the issues that you’re facing. How severe is the load time and response time for your blog? How does it compare with other sites you’re running? I started tracking my blog with Pingdom to monitor the average response time. This demonstrated that there was a huge opportunity to cut the response time – it was twice that of other sites that I run.

Another good way to evaluate where your site stands is to use the Y-Slow plugin. This will give you many useful pointers and things to look into.

As for my analysis via Pingdom, you can see from the chart below, the first half shows extremely high average response times. After the changes, that has evened out and is much improved.


Memory Conflicts

The first step that I did was move WordPress to its own isolated username. For ease of administration in my shared environment (with DreamHost), I had been running a couple of sites under one username. As I started digging into the bottlenecks, DreamHost pointed out that processes were getting killed under that master username due to memory limitations. Having multiple sites trying to run processes at the same time under one user was a major reason for this. So, an easy fix was to separate the resource intensive sites to their own usernames. Your host may not allow multiple system users under one account, but if they do, take advantage of this easy way to balance out load and avoid running into imposed resource limits. This was an easy and obvious fix, but also one that wasn’t made in any of the WordPress performance guides that I read, so it may be useful to others.


The Database

The database is a common bottleneck. For most applications, the database is the chokepoint, especially as load increases. I’m running all of my databases at DreamHost on a “DreamHost Private Server” – this allows me a little more control with regard to the resources consumed by the databases and allows me to adjust resources based on usage. In taking a look at the resource usage, it was clear that resource usage was climbing and hitting limits here, as well. By checking the MySQL processlist, I could see a couple of poorly performing databases and queries from a couple of development databases we also run on the server. (yes, it’s best to keep your dev and production dbs separated and are in the process of moving the dev databases off of this combined server.) Killing these and restructuring some of the databases on the box was able to alleviate this issue quickly. Bottleneck mitigated – you can see the huge drop in memory usage in the chart below.

This is easy to check on your server. Just run the following command from the MySQL console:

show processlist;

Then, either take note of the queries that are running and figure out if there’s something else using the database that’s tying up the server’s resources or kill processes that are hung / locked. (Note if you have multiple usernames accessing the database, you may need to run the command from those multiple usernames to get an accurate picture. See the MySQL docs.)



Finally, if you’re looking to increase your WordPress install’s performance, make sure you have the WP Super Cache plugin installed. This was already installed on my blog, but it takes care of a number of common tasks, including caching and gzip compression.

So there are a couple of easy steps to help increase the performance of WordPress running on your server. Unfortunately, dealing with performance bottlenecks is a very case-by-case, application-by-application specific process, so these may not be immediately applicable to your situation, but perhaps they’ll provide some starting points and ideas.



Here are some other good references and posts on the subject:

A month of travel

Posted: April 5th, 2010 | Author: | Filed under: photo, posts | Tags: , , | 2 Comments »

March was a busy month.  I visited my sister in Minnesota, lots of interesting folks in San Francisco, had a fun trip to San Diego and Mexico, and then a productive business trip to Europe.  Just under 17,000 miles flown and I was only home for four days in the entire month.  As those who travel with me will attest, I’m quite the professional traveler and enjoy optimizing my travel experience with tricks from my consulting days – upgrades to the Executive Lounge, skipping check-in lines with various elite status, etc..  It’s fun and it makes the travel craziness a little more bearable.

But a big difference from the big business consulting travel I’m used to was that a lot of this was on my dime.

So, why spend a month on the road, spending my own money (and more importantly, time)?  In short, I believe very much in investing in yourself.

There’s been a lot written recently about building personal brands and using social media to connect with interesting people.  Unfortunately, though, I don’t think there has been anywhere near as much written about what to do once you make these connections virtually.  And a big part of that is actually getting to know the people that you connect with that are interesting and that you can potentially collaborate with.  So, I think there’s a lot to be gained from getting on a plane every so often and meeting the people that you connect with virtually in person.  While I like Polycom’s products, there’s just no substitute for meeting someone in person, looking them in the eye, and figuring out what you have in common.

And so, for most of March, that’s what I was doing.  Which was also why this blog has been rather quiet in the last month, as well.

I’m sure that the highlights of the last month will come up in the next couple of blog posts.  In the meantime, here are some highlights that I’ve posted to Flickr.

San Francisco

Alcatraz at Sunset Fisherman's Wharf Fisherman's Wharf and San Fran in the background The famous sea lions

San Fran Cable Car Stanford's campus

I spent about a week in the Bay Area meeting with a variety of contacts.  It was great catching up with everyone that I hadn’t seen in a while and wonderful to put faces with names for those that I hadn’t met before this trip.

San Diego and Cruise to Mexico

Torrey Pines State Beach, San Diego Cute little guy in Cabo, Mexico Departing San Diego

Following San Fran, a bit of personal travel :)

London and Dublin

Dublin, Ireland Big Ben, London London

Then off to Europe for some business development.

Tottenham Spurs v Portsmouth

Tottenham Spurs v Portsmouth Tottenham Spurs v Portsmouth

A good introduction to European football.

Posted: January 30th, 2010 | Author: | Filed under: photo | Tags: , , | No Comments »





@cdixon aka Chris Dixon challenging VC’s and entrepreneurs who don’t blog.

I think the supply/demand balance has changed in the last 3 years. Startups are now choosing VCs for the small amounts they need, not the other way around, and a lot of judgments about how “entrepreneur-friendly” a VC is is made via their public online presence.

Build a brand, folks. It’s part of your job now.

Caterpillar Cowboy’s last sentence is important – already just weeks after starting to blog again in earnest, I’ve already seen the power of using blogs and Twitter to get in touch with people who share my views.  People who I wouldn’t otherwise have any way of getting in touch with.  It’s all about building a personal brand for yourself.