Always Get Better

Archive for the ‘Employment’ Category

That’s Not My Job

Friday, March 13th, 2015

Most companies seem to have a group of people who gravitate to either front-end or back-end development. I’ve been struggling to wrap my head around this because it doesn’t seem like a useful dichotomy.

It’s a fast-moving field, do you really want to carve a niche as a Unity programmer? An ActionScript expert? A Sharepoint developer? If you specialize to that degree, what happen

s when your technology of choice moves on?

How many of these have you come across:

“Front-end” developers who don’t understand the HTTP stack.

Companies that don’t have centralized source control.

“Back-end” developers who believe front-end code should be unit and performance tested just like server code – who don’t understand why squeezing maximum performance for one user on one machine would be as challenging as constructing a web app that served thousands of users at the same time.

Web designers who don’t know HTML, CSS and jQuery.

Anyone who takes a laissez-faire approach to security.

Project groups that don’t use Continuous Integration.

Understand More

Everyone has an area of interest where they excel and you should definitely pursue yours. Never forget that yours is a piece of the whole, and the more you understand of the whole the better you will be able to create value with your work.

If Photoshop is your bread and butter, learn how programmers slice your designs into HTML. Understand the technical limitations and get inspired by what the web browser can do for you.

If you’ve been slinging awesome responsive webpages, use your JavaScript skills to learn Node.js and understand where that server data is coming from and how it is stored. Expand your ability to write front-ends that scale as beautifully as they present.

If you are more comfortable in the bowels of a Linux server, download Cocos2d-x and experience the thrill your front-end counterparts get when their math turns into gorgeous sprites on-screen.

Everybody’s Talking

Every time you learn something new you open up a world of people you can network with and understand at some level.

Whenever someone asks how to get into the field, what do you answer? “Just do it!”

2011 In Review

Saturday, December 31st, 2011
Hot Desk
Creative Commons License photo credit: mikecogh

This year started off with a foray into Rails, an experience I won’t be rushing to complete. Most of my time was spent building a small application during the Christmas break in 2010, but in 2011 I moved that site into production and wrote a little bit about separating production and development values (a feat I repeated for the Play! framework, which I actually like, later in the year). I think the only thing I really like from Rails, and this is a bit of a stretch, is the database migrations.

Having moved entirely over to a LAMP platform professionally, and getting good at the security nuances plus everything else, I reminisced a little about some of the creature comforts I missed in C#, like operators for default null variables. But when I discovered Time Machine on my Mac, there was no going back – until the company switched directions and I got thrown back into .NET development.

That’s right – back to .NET, and deep into the Windows Azure cloud. I dealt with things like figuring out which is better – table storage or SQL Azure, and figuring out the nuances of their multiple SLAs, and how to ensure we actually have Azure Compute instances on-line when it hits the fan. At this point I have a pretty good handle on Azure’s strengths and weaknesses and my overall impression of the platform is very positive. If I continue building sites on the Microsoft stack, I would definitely continue to use Azure – it seems more expensive than other options at first glance, but it has some serious computing power behind it and takes the majority of administration headaches off of my plate. It really has enabled me to, for the most part, just focus on development whereas I was spending an increasing amount of my work day on system administration issues when supporting the LAMP platform.

Scalability and high availability have been on my mind a lot, and I’ve been looking into some more ‘off-beat’ database solutions like Drizzle for my transactional needs, as well as speeding up existing deployments by moving as much as possible into RAM. There’s always a battle between changing the way we work to take advantage of the new paradigm or changing our existing configuration to get some more life out of it.

The whole cloud computing buzz feels tired but has enabled a whole new class of online business. If you have a lot of commodity hardware you can achieve, very cheaply, feats that were only possible with an expensive dedicated network just a few years ago. Sure, it adds a lot of new choke points you will need good people to help sort through, which is giving rise to a whole new sub-category of programmer specialization to make hiring in 2012 even more challenging.

There is a downside to all the cloud computing, though, as we learned during the high profile Amazon failures – backups are important. This includes geographically-redundant systems that most organizations don’t have the experience to deal effectively with just yet. Even so, the biggest lesson I learned was never let your server run into swap space or your performance will nose-dive. The growth of this site even prompted me to move more of the site into memory which prevented me from needing to spend a lot of money upgrading my infrastructure.

Social media continues to grow, with companies realizing they can’t control its effect on their business in traditional ways and less-than-useless cons ruining it for everyone by selling CEOs on cheap gimmicks.

Since my third child was born in February, I’ve definitely taken some time to sotp and reflect on what I want to work on, why I want to keep working, and what the next steps are career-wise and life-wise. I want to provide the best that I can for my family and 2012 is going to see a radical course change as I start to shift gears and begin building something that will really last, even outlast me. When will my website start paying my bills? I don’t expect it will.

I learned a lot by running dozens (over a hundred?) job interviews in the past two years. Ignoring the old adage that you shouldn’t judge a book by it’s cover, I learned that you can tell with pretty good accuracy whether or not someone will be a good match for your company within the first five minutes of an interview. I’m less interested in hiring people with domain knowledge than I am in surrounding myself with the most intelligent developers I can find – one is a skill that can be taught, the other is an aptitude candidates need to bring to the table. Really, when it comes down to it, what I really want is for people I hire to stand up for themselves (since they are adults) and make me look good by being awesome at what they do.

I also learned a lot by being responsible for some very large projects; things like the importance of continuous integration.

What’s next in 2012? Look for mobile device use to continue growth – every developer who plans to stay employed needs to know something about mobile development, because it’s going to be ubiquitous with regular desktop programming very soon. Now that version 0.6 has been released with Windows support is Node.js ready for prime-time? I had the opportunity to play with it a lot over the past few month – look for a book early in the new year co-authored by yours truly.

How to Win at Work

Sunday, April 17th, 2011

It isn’t really hard to do well in a job; you just have to apply yourself and put the work first. Just like during the interview, your boss or employer’s motivation is not to give you a hard time or to make your life difficult; all they really want is to get the work done and make money.

A lot of employees seem to approach their job the same way they approached high school: as an institution with fixed rules and authority figures. In this mindset, the best way to succeed is by doing what the teacher (boss) dictates to the minimum acceptable level. Over time, it is possible to rise to the top on the merits of “years of good service”.

Let’s be honest with ourselves: there is surely a more fulfilling way to spend the majority of our day.

Fail Fast
If we look at the best, most successful entrepreneurs, we’ll find a list of failed companies leading up to their home run enterprise. Good entrepreneurs know that there is no secret to success – it is necessary to keep trying and learning from failures until we finally reach our goals. The best thing we can learn is to fail fast so we can move on to success faster.

This flies in the face of the ordinary way of thinking which is to avoid failure. Failure hurts, but if we can learn to accept it, we can open the way to more resounding success.

Do It On Your Own Time
Your boss does not care about your personal growth. As a programmer, the company is not obligated to teach you the newest programming technology. The company is interested in turning a profit, and in order to afford to pay an employee, they need to earn several times the cost of that employee in order to maintain profitability.

So how do you get new skills and remain relevant in a changing work environment? You need to study and learn, especially during your free time. Not sure what you should be studying? Read job boards – you will get a feeling for what is trending and what skills are in demand. You don’t have to be job seeking, but having a polished resume and portfolio will keep your mind sharp and improve the quality of work you already deliver.

Make the Boss Look Good
While you’re busy learning all your new languages and technologies, the boss is responsible for making sure work gets done and that profits are earned for their boss. So what’s the best way to get bumped up in line for that next promotion? Make your boss look good.

If you are pulling your weight plus more, your boss will look more effective, which will raise everybody’s boat. The best way to get noticed is by being responsible for everyone’s success. But wait – didn’t we say to embrace failure? By failing early and fast, we set ourselves up for our greatest successes. Don’t settle for status quo – always get better.

The Interview Process

Wednesday, April 13th, 2011

Can you be accurately summed up after a short conversation with a complete stranger? Do you think it’s fair that your entire career and work essence is judged within seconds?

Assuming your resume isn’t full of false truth and you get through to an interview, what’s next?

Be yourself. Be genuine. Be authentic.

Like it or not, an interview is a sales meeting. You are selling yourself – your professional skill as well as your personality. The flip side that most job candidates tend to forget, however, is the company interviewing you is just as interested in winning you over as you are winning them.

Be Excited
It’s hard to gauge whether a candidate is truly passionate about their work in a single interview because most people are too nervous to really show their true self. It’s too easy to want to please the interviewer – but you need to remember that the person interviewing you wants you to do well, wants to hire you for the position, and would prefer if you did well so they can stop performing interviews and get back to work.

Be Honest
It’s irritating (not to mention painfully obvious) when the person you’re interviewing with tries to use marketing spin to cover their lack of knowledge on any subject area. If you don’t know the answer to the interviewer’s question, just say so. You won’t lose points because it’s impossible for someone to have an answer to every question – the exception, of course, if when you can’t answer any questions, in which case the job may not be a good fit for you in the first place.

Be Independent
Some people recommend following up with your interviewer a few days after the interview. I’m not necessarily against this practice but I don’t like to do it because usually if the company is excited about hiring you they will contact you fairly soon after the interview. A bad or so-so interview doesn’t mean you definitely won’t get the job, but if you aren’t receiving a call back you are probably better off moving on rather than pushing for a response.

Overwork and the Creative Work Ethic

Wednesday, April 6th, 2011
Street Hassle
Creative Commons License photo credit: 2thin2swim

The massive amount of time required to improve at your craft is one aspect of creative work that is hard for outsiders to understand. When you stake your career and reputation on everything you do, it’s not a job that you work at from 9 to 5, “put in” your hours, then shut off and go home. Your entire existence is invested in succeeding and improving, not just for the paycheque (although, let’s be honest, a great salary is a definite motivator).

For someone who is content to just punch the clock, our world is the domain of work-aholics, people who don’t understand the need for balance in our lives – or the inclusion of family. We see it much differently, of course. To us, making an impact is more important than making a day.

Take a minute to celebrate the entrepreneurial spirit that drives you to keep pushing through and ultimately succeed where others would fail by giving up long ago. There’s only one way to push the limits and that is by continually pushing.

Now take a step back and try to consider the other side of it. The family side outside of work and its struggle against the career that seems to require your entire being. You may have a hard time trying to explain that you need to feed the career to feed your soul, but you need to understand that your family needs to occupy an equally important part of your attention.

Let’s stay focused: Work is important, but if it comes at the cost of ourselves is it worth the effort?

Resumes Are Better Without Alphabet Soup

Wednesday, June 2nd, 2010

You can spot them a mile away – resumes that look like someone loaded up a Microsoft Word template, punched in their information, then sent it to every job posting they could find.

Does this sound at all like your resume?

They probably start with an Objective statement proclaiming the candidate’s desire to secure a position among a progressive and upward-mobile organization.

Next up is the candidate’s skills, a veritable alphabet soup of every technology they ever came across. Honestly, does anybody really have useful knowledge of everything including ASP, Java, C++, Assembly, COBOL, Lisp, Python, Erlang, Ruby, PHP and Haskell? Yes, we get that you are smart and can work in any environment we throw at you, but what are you awesome at? I can’t tell.

Next is education, usually just the program name and sometimes a GPA. No real details about what the program consisted of – the point, after all, is that the candidate has an education, right?

Finally, the awful listing of every company the candidate has ever worked at going all the way back to the summer job they had in high school. Each is illustrated with so many jargon-filled bullet points that the resume takes up three pages and gives no really useful information about the candidate or their skills.

Sad to say, most resumes fit this pattern. The good news for you is the bar is set low which means it can be incredibly easy to stand out from the crowd.

Lose the Objective
The objective statement is the biggest sin academia has thrust into the world. The company you’re applying for does not care about your objectives and long term plan; their concern is finding a skilled worker who can meet their objects. Sorry to re-use a tired paraphrase, but ask yourself what you can do for the company, not what the company can do for you. Leave your expectations out of the mix until you hit the negotiation stage.

Less is More
Rather than listing every programming language you’ve ever heard of, list the top 2 or 3 you’re best at. If that means you can only list PHP because you live breathe and eat it, do so.

This is a bit intuitive: Showing a dozen skills will not keep the doors open for the best possible job. The reverse is true – rather than leaving recruiters confused as to whether you’re a good fit for their job, let them filter you if need be. Think about it – if you are that amazing PHP programmer, do you really want to be developing COBOL on mainframes all day?

Tell a Story
Try to put yourself in the shoes of the person who will be reading your resume. They will be reading other people’s resumes as well, most of which will look alike except for the author name at the top of each page. It should be a fairly easy job – just pick the candidate whose skill set matches the requirements of the job and hire them.

The reality is much more difficult. Even if a manager has the budget needed to hire someone, they may not be able to find the right person to fill the job. Skill is only part of the story – personality also plays a large factor. It isn’t enough to have someone who knows the job; it has to be someone who will fit in with the team and be a pleasure to work with.

Don’t just talk about your skills – talk about you. What do you bring to your work that no one else on earth can duplicate? You could start with a ‘hobbies’ section on your resume, but I recommend injecting as much of your own voice everywhere you can.

Rather than simply describing your job functions for each position you held, write about what your learned during your time at each company. What contributions were you able to make to the bottom line? Remember, your potential employer is hiring you because they want to make money.

Get Your Boss to Do What You Want

Wednesday, January 14th, 2009

Communication Overtones asks “What do you do when you are sure you are right about something but your boss won’t listen to you?” Any manager worth his salt knows to surround himself with talent that will compliment his own skills – he will draw from the experts around him to formulate his plans and direction.

Experienced managers also learn to trust their own instinct even when the advice from the experts is contrary. So what do you do when your manager has decided to go with their own judgement even though you are sure they’re wrong. After all, you’re being paid for exactly what you are bringing to the table, so where is the sense in overriding your recommendation?

There are a few ways to proceed:

  1. Insist on your course of action and hold your ground until your manager is forced to reconsider.
  2. Back down – the manager is in effect your client, and you can lead a horse to water but not necessarily get them to drink.
  3. Plant the seed.

Plant the Seed
By “planting the seed”, I mean be subtle about your course of action. Let your manager know what you are thinking and leave it at that. It will get at them subconsciously until they come at you weeks later with a great new idea that sounds suspiciously like the one you had brought forward.

Be Patient
When you plant seeds, you need to be aware that it takes time for your point of view to enter your boss’ mindset. Depending on the concept and its complexity, it could take months for this passive approach to take effect. You could say this technique only works for non-critical ideas, but that isn’t necessarily true – it only works if you have enough patience to let your course of action sit.

Let It Go
Because this technique is a passive method for subordinates to get what they want out of higher-ups, you need to be prepared to let your idea get overridden. If your manager truly sees fit not to invest in your idea and you can’t make them come around to your point of view then your two options are either to put your ego aside and accept it so you can move on, or find another manager/company who want to run with it.