What makes a great programmer?


Programmers’ Day is often marked on 13th September, which is the 256th day of the year. 256 is the number of distinct values that can be represented with an 8-bit byte. NM Group’s Software Development Manager, Andy Hewitt, shares his thoughts on being a programmer.

So, what qualities make a great programmer?
You need to be very logical, have a keen interest in upcoming technologies and like working in a fast-paced environment. We have a great team, everyone gets on and no one is afraid to ask questions. If you get stuck on a problem, you can be there weeks trying to solve it yourself, but often, if you ask, you can fix it straight away. So, working collaboratively and being able to ask for help when you need it is also essential. 

What kind of software does NM Group typically develop?
It’s quite niche, because there’s a spatial element to what we do here. Coders who are writing web apps for marketplaces like Amazon or Ebay, or Twitter and social media feeds don’t have to deal with spatial data like we do. Our work involves 3D points in space. You’ve got to take care of all the rotations and planes etc. It’s a specialized kind of development.
We currently have a team of C# developers, who work on our production tooling, cloud computing and internal project management and quality assurance business systems, as well as PHP developers who work on Caydence®, our online 3D visualization software. In the last year or so, we've used cloud computing more and more. After our data teams and engineers have gone through and modeled all the information, it comes into our software and then we run all the clearance analysis, so we’re doing all the radial distances, vegetation encroachments, fall in distances etc and all that runs through the cloud.

How did you become a programmer?
I learnt to program through laziness really. By writing the code once, you can consolidate things that you do all the time, so you can then complete the action over and over again. I actually trained as an engineer, so I was making lots of CAD models, every time going through the same motions, manually adjusting the dimensions to make it twice as small or twice as big. Using coding, you can adjust them all automatically to scale the model up or down. You end up making smarter models that you can re-use over and over again.

What is your least favorite part of being a programmer?
I don’t like when it doesn’t work! You can spend hours and hours working on something you are sure will succeed, for it then not to work. Or you can make the tiniest mistake, such as missing one character at the end of a line, and it takes you hours to figure out what the issue is.

If you weren’t a software developer what would you do?
I’d love to travel to places where they have dramatic winter landscapes, like Iceland and Norway and if I had to choose another job, I’d be an engineer, because they’re cool. So engineering somewhere icy, I guess!

How important is software to NM Group’s business?
Strategically, I think it's of huge importance. A lot of what we do, we could do manually, but it’s not cost efficient. We need to constantly strive to make our systems smarter.
NM Group have been working with LiDAR for ten years now. We’ve got a big store of data to draw from, enabling us to be constantly developing innovative software that provides effective services to our clients, such as machine learning techniques.