Andy Crouch - Code, Technology & Obfuscation ...

Interview Advice For Candidates

Two Men Talking Over Table

Photo: LinkedIn Sales Navigator - Unsplash

About 9 months ago I wrote some advice for candidates based on reading a lot of CV’s. We are hiring again at Open Energy Market and I have carried out many interviews over the last month. A couple of stand out candidates made the process engaging and fun. Most didn’t for a variety of reasons. So I thought I would share, publicly, some feedback.

Research the company

When interviewing for a company it is rude to know nothing about it. Every company has a website, files accounts or registers with professional bodies. The information available varies. But, you should be able to answer the question “What do you know about our company?” The answer should also be better than “You work in industry x” and should prove effort on your part. You should be able to provide evidence that you have done your research in your answer. Who does the company work with, what is the company vision, how are they different from their competitors.

Just to be clear “Not a lot really” or “Nothing” are unacceptable answers. (Both of which were provided during the latest interviews).

Research the role

You will have a job description for the role. Use it to prepare.

Prepare to answer questions about the technology stack used. Your knowledge of that technology will be interrogated. Brush up on any parts you use less often. Prepare to answer questions about the technology’s ecosystem and architecture pro’s and con’s.

Have examples of how you have solved problems using the technology stack. It can sometimes be useful to have code snippets. These can act as conversation starters. I expect candidates to explain how their experience is relevant to my role. Be honest. If you have tried solutions that haven’t worked as expected, share and be clear on how you overcome the issues.

There is nothing worse than asking a candidate a question and getting yes/no answers. A good candidate will engage in a conversation about technology and share opinions.

You are not an island

When discussing a technology or library, the answer “I have my own version that is better than x” is usually a red flag.

Why do you think your framework is better than Bootstrap? Why is your ORM better than EF or Dapper? What makes you better than an open source community or a corporate development team. Obviously, this should be applied on a case by case basis. But, it tells a lot about a developer who makes that kind of statement.

(FYI if you are Linus Torvalds, Guido Van Rossum, John Resig or DHH this section probably doesn’t apply to you.)

Take breath

For a recent role, we interviewed two candidates at the polar ends of a long spectrum. One candidate took 22 minutes to introduce themselves and provide a “brief” career history. They literally didn’t take a breath. The very next candidate was the opposite. They said nothing more than the very least they could get away with.

There is a middle ground. Answer questions in a considered and detailed manner but do not bore people. Remember that the interviewer will want to know how relevant you are to the role. Being told about your paper round is of no value. If you do not know an answer then be honest and do not stumble to a bad answer.

No Arguments

Developers like flamewars and arguments. They are by nature opinionated people with strong views about everything technical.

Be flexible in the discussion. Don’t forget that interviews should be a two-way process. If you disagree with a statement or opinion of the interviewer, then counter. Do so in an educated manner and provide context for your opinion. The interviewer may even throw a curve ball question in to see how you react.

If something is a deal breaker for you then wrap the interview up there and then in a professional manner.

Keep it calm and polite.

Have a working environment

At Open Energy Market we carry out interviews via Hangouts. The main reason we do this is that our development team is fully remote. That means that candidates should be comfortable with video calls. It is the main method of daily communication. Doing interviews this way proves a candidate can be comfortable working in this way.

If a candidate takes 15 minutes to sort out their sound or video issues it’s a black mark. Hangouts is not a cutting-edge new technology. It is extremely easy to set up and if you are attending an interview using it you should be tested and ready to go.

A recent candidate was unable to operate Hangouts at all. Instead, they invited us to use their existing employers Skype for Business service. Not a good impression.

So, that is a brief summary of advice from 20 or so interviews. Every interviewer is different and the approach taken varies on the role. However, if you are prepared and can calmly and clearly explain how your skills and experience fit the role requirements you will standard a fair chance.

If you have any comments or would like to discuss this topic further then please message me via twitter or email.

Open Energy Market Close £3 Million Investment Round With Calculus Capital

Open Energy Market Calculus Investment Press Release

Photo: Andy Crouch

This week I am writing a short post to share some exciting news. Open Energy Market has closed a £3 million investment round with Calculus Capital.

The full details are here.

This is a great validation of the work we have done at Open Energy Market over the last 5 years. The technology we have built has already changed the corporate energy market. Using the investment to enhance our technology further we have some exciting plans for both buyers and suppliers. I am looking forward to the next phase for Open Energy Market.

Press queries should be address to our press team.

Adding MX Records To Netlify DNS Zone Files

Envelops On Blue Background

Photo: Andy Crouch

Recently I wrote about switching my hosting away from AWS over to Netlify. As part of the process, I also moved my DNS records over to Netlify. This process was painless but in the euphoria of such easy deployment, I forgot all about my mail records.

I use Hover as my domain host and use their email forwarding service on a selection of addresses. After a couple of days, I noticed these addresses were no longer being forwarded and I felt like an idiot!

After I berated myself, I set about looking at how I managed to get the MX records added to Netlify’s Domain zone records. To be honest it was harder than it should have been. Mainly down to the non-complete documentation from Netlify. They make reference to being able to do it but for the less inclined it was not at all clear.

So this is how you add your email (MX) related records to Netlify:

  • Login to Netlify and head to the Domain Settings section for your site.
  • Scroll to the bottom of the page and look for the new DNS zones section. At the time of writing, it looked like this.
Netlify DNS
  • Select the zone relating to your domain.
  • Click the Add new record button and enter the settings.
Netlify DNS Record Dialog

The settings are as follows:

  • Type - MX.
  • Hostname - Will default to the name of your Netlify site name.
  • Value - This should be the server path for your email service. Do not include http:// or htpps://
  • TTL - This is the Time To Live setting for the record. The standard Netlify setting appears to be 3600 but I tend to set short TTL’s where possible.
  • Priority - This should be set to 10 from what I can ascertain.

Click the Save button and wait for between 15 and 30 minutes for the settings to propagate. Your email services should be working as before.

If you have any comments or would like to discuss this topic further then please message me via twitter or email.

Setting Up GDM, Gnome Power Settings & Locking Suspend In Antergos

Power Switches

Photo: Unsplash

The new year lead me to finally rebuilding my Thinkpad and swapping in a new 240gb SSD. This means a shiny new install of Antergos which in turn means a short tweaking session to make it right.

Antergos, for those that are unaware, is a version of Arch that comes with a useful installer. While Arch Linux is not hard to install it can be a distraction from life. Their documentation is superb and it is easy to get lost in pages and pages of packages and options. I have seen some articles recently which suggest Antergos is a great beginner Linux. I would argue that it is better than Fedora, Ubuntu and co but that is probably another post in itself.

The main issue I had while tweaking Antergos this time was to do with power settings and suspending on lid close. I also decided to switch back to the GDM login manager as I have never really liked LightDM.

Installing GDM and configuring it is very easy. In a shell run the following command:

$ sudo pacman -S gdm

This will install GDM and running:

$ sudo systemctl disable lightdm && sudo systemctl enable gdm

will configure systemd to use it as the default login manager.

At this point, I rebooted to ensure it worked and all was as expected.

The next step was to get suspend working. By default, this time, nothing happened when I closed the Thinkpad’s lid. A little bit of Googling later and I found that first off I needed to install Gnome Power Manager:

$ sudo pacman -S gnome-power-manager               

Then I had to alter the /etc/systemd/logind.conf configuration file. This file is used by systemd to define the various settings for power related events. In my file, all settings were commented out. I uncommented the following entries and updated their setting values. One reboot later and suspend was working.

HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=suspend

The final step was to enable the Screen Lock setting. Doing so ensures that when you suspend and power back on that GDM protects you by forcing you to log back in. This can be found under the Privacy setting section in Gnome Settings.

Gnome Power Settings

Unusually, figuring this out took a little reading and many sources. Hence why I am documenting it here, in case it is useful for anyone else.

If you have any great tweaks or Antergos/Arch related tips then please message me via twitter or email.

Organising Company Service Accounts & Managing Associated Passwords

Desk Of Gadgets

Photo: Unsplash

When you start a company you sign up for a never-ending amount of online services and utilities. Bitbucket, GSuite, a CRM, an accounting package. These days the list goes on and on. When there is only you, the founder(s), it is easy to not give a thought about how you sign up for these services or accounts. But, you should for many reasons.

The main issue is availability. Bob Smith is a founder and signs up for some services with bob.smith@shinynewstartup.com. He starts to use the services and grows his business. Awesome! A little while into the future and one of Bob’s new employee’s needs to get access to one of the services, urgently. Unfortunately, Bob is on site for a customer and is unreachable. This is not ideal and it gets worse over time. What if the person whose email is used to access vital services leaves? You can see how this could be disastrous.

The solution? I have always found that creating a generic email group and using that is the answer. services@ or operations@ are good options. Ensure that your group contains your current senior team members. Then junior members know to approach their seniors for passwords when needed. Create a core HR policy stating that all services for core business operations use that email account. Then enforce it. Make it a core, cultural, pillar. Instil it in all your new hires.

The next thing to consider is how you manage the passwords associated with all the accounts. There is a host of password managers out there and I am not going to tell you which to use. Some have super useful features but a lot also have been compromised. So do your research and decide on the risk to your business should your passwords be compromised or go offline. Also, think about how you would handle a manager service going offline.

My current approach is to use KeePass to generate and store passwords on a synced drive. There are a few useful sync tools such as Dropbox and Bit Torrent Sync for sharing the KeePass file. The file itself is encrypted using AES and Twofish encryption. This is good enough for US Federal Government. When you create your password file you secure it with a password. That is then the only password you need to share amongst your team. I always make it a stupid phrase based on a shared TV show or song.

If you have any comments or would like to discuss this topic further then please message me via twitter or email.