Teach your employees to conduct interviews

Conducting regular interviews is essential for any company that wants to find top talent. Not only is there a possibility of finding a random gem, but it guarantees that your business stays informed of the job market. How many people are looking? What are they looking for? Is my business situated to attract the right people? Such an important thing should probably be conducted by knowledgeable individuals, right? Hey, that’s just my opinion.

As someone who has experience being on the receiving end of the job interview onslaught, I want to take some time to give advice to those who conduct the interviews. This obviously comes from the perspective of the receiver, so I can’t help if my opinions are a little biased. Regardless, I think that there’s some valuable information on the other side of the table for those who are conducting the interviews. As a frequent interviewee, it it’s painfully obvious when an interviewer is not interested or isn’t trained well in conducting interviews.

Read the Resume, Please

I’ve noticed an alarming trend of some interviews being conducted without any references to or knowledge of the applicant’s resume. You know there’s some important stuff on there, right? Larger companies seem to be particularly guilty of this. It’s probably a symptom of receiving too many applicants to filter through at the beginning stages. I totally get that. I sympathize with companies that receive thousands of applications each week. But to ignore important background for applicant’s that pass various phases of the process seems silly.

Honestly, I don’t understand why some on site interviewers don’t read or reference anything about resumes. Clearly the applicant has impressed you enough to invite them on site to go through the gauntlet. Yet, you’re not interested enough to ask, at the very least, some minimal questions about the applicant’s background and experience? It’s your chance to get to know the person beyond the academic knowledge that they’ve spent hours memorizing for the interview.

I understand the need to judge an applicant’s ability to perform the immediate tasks through question drills, whiteboard quizzes, and comprehensive discussion. However, by ignoring the important mine of information in an applicant’s resume, it seems like an interviewer would miss out on plenty of opportunities to confirm stories with the applicant. This gives the applicant a chance to discuss their past experiences and projects in complete detail. From this, one can judge an applicant’s ability to hold a conversation, discuss technical details, translate complex project information to a third party who isn’t directly involved with the project, and see if anything in the resume is bogus.

Be Interested or Act Like You Are

Being on the receiving end of an interviewer who wants nothing more than to leave is an awful feeling. As an applicant, you start the interview in an already nervous state, and the last thing you want is someone asking you questions who couldn’t care less about the answers. Why would companies go through the trouble of scheduling time to interview when their scheduled interviewers simply don’t want to do it?… Read more

If you’re a professional, communicate like one

So you’ve landed that job after reading my interviewing tips, right? When you start that job, what skills do you think will be necessary for success? Obviously, you’ll need the relevant knowledge, technical, and physical skills to get the job done. Unfortunately, one very important part of a successful employee is often neglected due to ignorance or indifference. Based on the title of this blog post, you may have guessed that the often lacking skill is “communication.” To clarify, the following advice can be applied to many types of jobs, but focuses on technology and office-oriented service positions.

It’s a shame that this skill is so poorly understood by many professional workers and academics, because it’s absolutely critical to conveying our ideas, knowledge, processes, and skills to colleagues and coworkers. Here are just some of the scenarios in which good and proper communication is key to success. These are just the things that I thought of in the last 45 seconds! The interested readers among you can probably come up with many more relevant examples.

  • Transferring domain specific knowledge to new workers or replacements
  • Training new workers on domain specific processes
  • Conveying company policies, rules, and regulations
  • Working within the immediate team to provide regular updates, feedback, and support
  • Communicating with remote coworkers, customers, and clients via video conference, teleconference, instant message, email, and phone

Transferring Knowledge and Training

There are often circumstances either within your control or beyond your control that may require you to transfer domain specific knowledge to a coworker, a new hire, or a replacement. As the resident expert in the domain, it’s important to yourself and your company that you accurately transfer knowledge to other people. Think of all the knowledge you’ve gained in the years that you’ve spent at the company. It’s a huge loss to everyone involved if you simply walk away without assisting others in learning enough about the domain to partially fill the giant hole once you’re unavailable.

If it’s the first time such knowledge transfer is occurring, make sure to document each important step so that future transfers are nearly hands off. This will require less time dedication on your part after the initial training sessions are completed. Additionally, you are no longer considered a point of failure in the “knowledge tree.” If you’re out for the day or spending a few weeks on vacation, the ease at which another person can pick up the slack is increased due to well documented processes. This is especially important if you’re leaving the company. There’s no way for people to contact you after you’re gone, so it’s critical that you spill your knowledge to paper.

Teamwork

A huge part of teamwork is good and regular communication. This is especially true if your coworkers are relying on you to finish a portion of a project before they can proceed or complete. Without giving regular updates, the rest of your team will be misinformed on where you stand in the schedule. Think about establishing a monthly progress report for larger projects, weekly progress reports for smaller projects, and possibly bi-weekly stand up meetings between immediate team members to keep each other informed of relevant and interesting information.… Read more

Tips for a successful software job interview process

Ah, the dreaded job interview. The call to set up an interview is always exciting, but the moment you realize that you have to perform well is nerve-wracking. Fortunately, I’ve been through the gauntlet of many interviews. I have some practical advice for you in this article, so read on! I recently wrote about some heinous experiences interviewing with some of the larger technology companies in the US. I can say, without a doubt, that I have some experience when it comes to being on the receiving end of the endless questions in an interview. Success in interviews comes from practice, study, and some luck. Not only are you being interviewed, but you should also be evaluating the company. How would you consider it a success if you end up in a company you hate?… Read more

Setting up a custom domain with Namecheap and Azure Websites

There are a ton of domain name registrars and hosts out there. Finding specific instructions to match the two together is something a bit of a challenge. To make things tougher, instructions aren’t always updated when user interfaces and processes are changed in the tools provided by these services. Hopefully, this article will provide simple instructions.

  1. Log in to your Azure account and go to the management portal.
    • Your website must be set to “Shared”, “Basic” or “Standard” tiers in order to use custom domains.
    • If you want to eventually setup SSL on your custom domain, you will need to set the website to “Basic” or “Standard” tier.
    • Read more on pricing.
  2. Navigate to the dashboard of the Azure Website you are working with.
  3. In the bottom toolbar, click “Manage Domains”.
  4. Make note of the IP address listed at the bottom of the popup.
  5. Log in to your Namecheap account.
  6. Under “account information”, click to view your domains.
  7. On the left sidebar, click “Your Domains”.
  8. Click the domain you want to connect with Azure from the middle section.
  9. On the left sidebar, click “All Host Records”.
  10. Copy the IP address from step 4 to the IP Address / URL of the root host name “@”. Change that record type to “A Record”.
  11. Copy the “xxx.azurewebsites.net” domain name to the IP Address / URL of the host name “www” where “xxx” is your website name. Change that record type to “CNAME”.
  12. Under the subdomains section, add “awverify” and “awverify.www” subdomains. Set both IP Address / URL to awverify.xxx.azurewebsites.net where “xxx” is your website name. Change those record types to “CNAME”.
  13. Save your changes. Wait until the DNS records propogate. Sometimes this takes awhile (over 24 hours). In my case, it took about an hour.
  14. Go back to your Azure dashboard, add the domain and any subdomains to the popup from step 4. For example, “xxx.com” and “www.xxx.com” where “xxx” is your domain name.
Read more

Always Deliver to the Software Specification

As programmers and system designers, we want our time to be spent well and our products to be well received. Nobody likes to spend weeks of their life coding a system that ends up being hated and unused. But hey, you were likely paid for that work, so what does it matter? Well, unless you reflect on what exactly caused that scenario, the situation will probably repeat itself in the next project or another one down the road.

Of course, maybe it wasn’t directly your fault. Maybe you were constantly distracted by that guy who screams into his phone a few cubicles over. Maybe your boss constantly forgets his passwords and thought the best person to bother was you. Maybe the other developers decided that the coding standards were beneath them and made peer reviews a living nightmare. Or maybe the software specification just sucked straight from the beginning. Sometimes these things happen and become unavoidable or at least difficult to avoid. But never, ever, let a product suffer as a result of not delivering to the specification; no matter how bad it sucks.

“But it was just that awful! There was no punctuation, and the writer decided to write the entire thing in Ye Olde English.” you shout. OK, wow, that’s pretty bad. But why weren’t these things brought up during the specification review and sign-off? I guess someone up top thought it was well written and chock full of good ideas. If it somehow managed to pass through the stakeholders and into your hands, then there’s not much you can do except leave the company or do your best to implement the funny jokes generator that slipped in from someone in management at the last minute.

Now, that doesn’t mean the specification can’t be improved. You can certainly bring things to the stakeholders’ attention for post-sign-off review. Perhaps you don’t know the subtle distinction between thou and thee which seems to be sprinkled everywhere in Ye Olde Specification. This approach to specification review is quite common, because things will inevitably surface during development that you didn’t expect. This path leads to happiness and sanity.

But sometimes, we programmers get that creative spark, that hint of artistic genius, our Van Gogh moment. Ignore it. Don’t let your imagination get the better of what you should actually be doing which is delivering to the specification. I’ve had the displeasure of working with someone (we’ll call him Rembrandt) who constantly wasted time implementing features that no one asked for. And you know what, some of the features were really awesome. Rembrandt had some genuinely good ideas. Rembrandt also caused the ship dates to constantly slip because he was never finished with the agreed upon tasks.

Therein lies the lesson. Don’t create features that aren’t explicitly stated in the specification. I know it’s hard to ignore that nagging voice in your head that says, “It will only take a little more time to add this other feature!” In reality, it probably wouldn’t take much time to add useful little features.… Read more