Welcome!

Simon Horwith

Subscribe to Simon Horwith: eMailAlertsEmail Alerts
Get Simon Horwith via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: ColdFusion on Ulitzer

CFDJ: Article

Career Growth 101 for the ColdFusion Developer

A student recently asked me what he could do to further his career

A student recently asked me what he could do to further his career, and inquired as to how I got to the point I am at on my own. This is a subject generally reserved for informal chit-chat among developers at conference social events and after user group meetings, and is one that is very important to each of us.

It also brings up the fundamental question of whether or not there is a proven, easy-to-follow formula for career success as a CF developer.

The truth is that there is not any set formula to achieving success, as we each define success differently. Success for some is measured solely by their financial compensation and status. For others, success means happiness on the job and with their life - perhaps they place more emphasis on the people and environment they work in every day as well as on their vacation and other "personal luxury" benefits. Still others describe success purely by notoriety and demand - on both their achievements and their reputation.

For most of us, our career objective is in reality a combination of all or some of these goals. Obviously, everyone values their paycheck and most of us are hoping to see our salaries increase over time. Of course, money does you no good without a personal life and liberties to enjoy that hard-earned money outside the workplace, so some emphasis must be placed on quality of life. For many developers their job is just their job, and they don't take any interest in public reputation or pride in their achievements, so long as the money and quality of life is satisfactory. Those who do measure success this way most often do so knowing that a good reputation and great achievements shown on paper also translate to better pay and negotiating power when discussing compensation with employers and prospective employers.

Though the goals and path necessary to achieve these goals may differ from developer to developer, I do have some sound advice and career exercises that will aid you whatever your goals may be.

Financial goals are best determined by evaluating where you are now, and determining where you want to be in, say, five years. If what you want is to retire in five years, then you need to do one of two things. You can work for a company you believe is going to go public, get bought, or do so well publicly that the pay-off will be enough to retire on. You also need to assure yourself that you have an employment contract with a company like this that guarantees you enough interest in the company that your interest will be worth enough to retire on. If you are fortunate enough to find a company and position like this, you are on your way. The other approach is to develop a commercial product yourself in the form of off-the-shelf software or a Web site that will generate revenue through advertising, membership/services fees, and/or being bought.

This is a lot easier said than done, but if you have a good idea, the payoff could be substantial. With either of these approaches you also need to put a value on security. Consider yourself blessed if you are employed by and have interest in a company that not only has a good chance at being bought or going public, but that also offers job security. A very large percentage of these companies are at a higher risk of folding and never realizing their dream. Developing your own product or Web site is an even higher risk if you're completely self-employed, and a good approach would be to keep your day job and work on said project on weekends and evenings until you feel comfortable that the project will succeed.

If your expectations aren't so high that you are planning retirement just yet, there are several ways to improve your worth and command a better salary. In today's job market, a ColdFusion developer who knows object-oriented programming concepts and how to apply them in CF is worth quite a bit more and is in more demand than a developer with twice the experience but who doesn't have OO experience. Learn about OOP and master CFCs and the techniques for developing OO CF apps, and emphasize this on your resume. Knowledge and experience with a framework(s) carries weight with some companies and is another thing to highlight on your resume, though most companies that are looking for a "framework developer" tend to accept inexperience with a framework if the hire knows OO. Learning Flex 2 or Java certainly also helps to make you more marketable - in particular the market for CF developers who also know Flex is a rapidly expanding one. ColdFusion Developer Certification doesn't generally carry much weight in my experience, but it does look good on paper and some employers and contracts do require it - and getting certified doesn't take too much time, effort, or money. Aside from having decent knowledge with whatever database an employer is using, most of the other technical skills that set a developer apart from the pack are more related to management. Knowledge and experience with a source control system like subversion tends to carry weight with employers, as does (in fewer circumstances though) experience with Ant for deployment.

Speaking of management, being in a tech/team lead or architect role generally comes with a higher salary, as well as more responsibility. So does project management, though emphasizing project management and/or looking for project management positions does mean that you are committing to a career path that will most likely take you away from day-to-day coding and into a path of management and executive management. If that is a career path that you find appealing, by all means pursue it - there will always be a demand for PMs, and their pay tends to be really good. If you have experience leading/managing projects or development teams, definitely emphasize this on your resume and in your interviews.

If your goals are more focused on quality of life, by which I mean vacation, low stress, etc., it's a bit more difficult to state a formula for achieving your goals. Be aware that working for an employer as an internal employee who builds internal applications certainly does tend to mean more moderate hours and less stress surrounding deadlines than working for a solutions company where you are developing applications for clients. This is on an employer-by-employer basis, but is a practical piece of advice. Be aware that pay is not always as good in these positions, but again - that's on a case by case basis. Whether your goals are solely financially driven or include aspirations toward public notoriety and other noteworthy achievements, the best way to attain either/both is to work on large, complex applications. Applications that require a large team, that have high public visibility, and/or that require pushing ColdFusion to its limits tend to be the ones that developers learn the most working on, and also carry a lot of weight with employers. Who you've worked with (i.e., being on a development team with a reputable developer) also tends to carry a lot of weight and gives you an outstanding reference. Other credentials that impress employers include community activity - speaking at user groups and conferences, teaching classes, having a popular blog, and writing/tech editing for magazines (CFDJ) and books. When I explained this I was immediately asked why teaching and community activity makes one more desirable to employers since it doesn't really mean you know more. The truth is that I'm not sure (unless the employer values these things) but it does look good on paper and it lends credibility...and for many employers it's a clear sign that you have good written and oral presentation skills...something that many companies look for in their IT staff but is very hard to find. I definitely advise developers seeking to make themselves more marketable to write and present, and if you are offered the opportunity to teach or to become a certified instructor, definitely don't pass up the chance unless you really have no desire to be an instructor.


More Stories By Simon Horwith

Simon Horwith is the CIO at AboutWeb, LLC, a Washington, DC based company specializing in staff augmentation, consulting, and training. Simon is a Macromedia Certified Master Instructor and is a member of Team Macromedia. He has been using ColdFusion since version 1.5 and specializes in ColdFusion application architecture, including architecting applications that integrate with Java, Flash, Flex, and a myriad of other technologies. In addition to presenting at CFUGs and conferences around the world, he has also been a contributing author of several books and technical papers.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Eddie 05/09/07 05:47:39 PM EDT

This is a great editorial and contains some very useful advice. I love the CFDJ and hope to see more articles regarding work/life balance issues, career growth, even a "death march survival guide".

One particular thing that was touched on is the growing divide between Object Oriented CF developers and old-school procedural CF coders. As someone who wears both a coder and manager hat (depending on the day), I would love to get some advice regarding strategies for converting older apps to a more accepted OO/CFC design methodology such as Mach II.

I personally inherited several large scale CF apps with thousands of templates, many of which have gone largely untouched since they were written in the late 90s using CF 2 or 3. It would take many months if not years to rebuild these apps with CFCs given our organization's staffing situation so I would love to hear how other people have pulled this off and sold it to the higher-ups. These apps work fine in their current form so it is hard to justify the time and expense it would take to modernize them.