Darren Moore is a professional web developer for more than 18 years now and has founded Firecreekweb in Bangkok back in 2007. He is responsible for mobile, tablet and web application development. Consultancy and full project management are other strengths of him. Enjoy the interview with web developer Darren Moore and listen to why he thinks communication plays a very important role nowadays in the programming industry.
For those who do not know you; can you please introduce yourself?
Hi, I am Darren and I run a web development company in Bangkok in Chitlom. We specialize in both Web Developments and mobile apps.
What kind of people are you looking for at your company?
We are looking for geeks, nerds, anybody who really enjoys coding. Everybody in our company is a programmer. We don’t do marketing, we don’t do design.
So we are looking for people who are passion in programming and developments. People who come for interviews, we are really looking for geeks and nerds basically. I think that term is more accepted now than it used to be.
What kind of hard and soft skill should they have?
Part of our interview process is actually testing their logic. We have a basic template system that they have to build. It takes about 15 – 30 minutes. It shows us, are they thinking about how to connect the data together and there is actually about 20 – 30 differents ways I have seen done it. Sometimes good, sometimes bad, sometimes just a complete disaster but it really shows us if they are logical thinkers.
Soft skills that we always try to push with the guys, once they are onboard and they are working for us, is just that we work with tasks in JIRA and what we really want from people is just that push that little bit extra further. So there might be a description what needs to be done but actually, what we want to see is just a little bit extra done and that may not even be visually. That might be done through programming.
So we use bitbugger, so we get emails when committers being pushed to the servers and it is very easy for us to go in and see what lines have changed and just have a quick overview. It is really nice when a programmer has cleaned some indenting or throw some documentation in or refractured some code that was not necessarily part of the task that they had to do.
That is a really good skill and if I see my employees doing, I straight away say that this is a really good job and that is something I will reward them with.
When you receive a new application for an open job position, what are the most important things you are looking for?
I think we are looking for the technology but most of all I am looking for flaws in the resume. When someone has a resume and its listing certain technology such as C# and Java and crazy languages like Assembler. Then they are come down to things like PHP and ruby on rails and all the kind of node.js and js frameworks.
I want to dig into those and find out if they are actually have done them for an hour at home or they actually have done a project. So when I see a resume that has a few key technologies that we actually want then this makes me feel a little bit better that they are taking these languages seriously and they are not just playing around with them in their spare time and they actually have a project.
Apart from that, nicely set up, clean resume, not really too worried about their education but I want to sit down, talk to them and really find out what they are about.
I have had some really terrible resumes come through before that looked awful but in fact, we have employed them and they are working with us still right now. Maybe over in South East Asia it is a little bit different with resumes. Maybe in Europa, a bad resume ends up in the bin straight away but I give them the chance and that is really working well for us.
How do you test the skills of the applicant to identify the right fit for your company?
So the interview is done in three sections. First part is just understanding what they have done and understanding their history and going through the resume with them.
The second part is test questions. So we asked questions such as ‘What is the difference between == and ===?’ and we see what their answer is. Sometimes their English might not be as clear but I can see from their body language if they do understand it. If they explain it in a certain way, I give them three ticks straight away to say, that is a good answer.
The other things that we do is that we actually have a practical test, that I have mentioned before, which is building a basic template form. There are 3 or 4 files. It is generally done in PHP and they can use Google, they can basically sit there for 15 – 30 minutes and like I said, I have seen 20-30 different ways it has been done. Sometimes good, sometimes really bad. That gives me a really good judge of what their logical skills are.
We also asked other general questions ‘How far away do you live from work?’, ‘How long does it take to commute into the office?’ We are pretty lucky that we got an office in Chitlom which is very central Bangkok. So it very easy for people to get to work but I don’t really want to commit for people to spend 1 hour half getting into work. I think it is a drain on the system and I don’t want people to do that and I prefer them have a job closer to their home. We ask little questions like that to get an idea of who they are.
What are the essential skills that every web developer needs to acquire nowadays?
In South East Asia, I am still trying to learn Thai and I am not perfect at it but unfortunately, it is going to be English for programmer in our sector because they have to be able to find the information as fast as possible.
Programming is quite a lot faster than what it was many years ago. We didn’t have Google so you had to get books and documentation and now you got stock overflow.
So I think for me it’s a half decent grasp of English, you find a lot of people who come in for interviews who can read and write very good English . Their speaking might not be as good, I can’t criticize because my Thai is terrible so for the actual practical work and actually getting the job, there just have to be some good English skills.
The second thing that has nothing to with language or location, it’s patience. Projects take a long time and a lot of people do not realize is this is that you can work on startup. We have been working a startup now for 4 years and we’ve got traction, we’ve got signups and it’s going into the right direction. 4 years is a long time but 4 years is not the finish, it is not the end.
We are getting the products we have prayed off that is working now for our customers but now it is working and now we got to keep taking it forwards.
So the typical length from a startup or when you are creating a web product, it is 5 to 7 years. We got to start from the first year up to the fifth year but even after it is sold, you got to keep working on it. So as a project manager or maybe a lead developer as well, you got to stay on that for a long time , you got to be dedicated to it, you got keep entertaining yourself, so patience is a really, really big thing for programmers.
I have seen many programmers who do not have patience and after 3 to 6 months, they are getting bored and that is not good for commercial programming. If they want to go off and do their own startup as well, then they just have to get used to it because that is the reality of it.
What are a few of your favourite development tools and why?
Personally, I don’t care about what operating systems people want to use, don’t really care about what text editor they want to use. Get the job done.
That’s it really but as a manager, we use tools such as Trello, JIRA and Google. Google apps like email, docs and storage. That’s pretty much it. I don’t want to start from too many products at management.
I think it’s not that hard. We have physical things like post-it notes on the wall which have JIRA numbers on them. I like to keep it simple. My guys can use whatever operating system they want on their computers, whatever they feel comfortable with. Any flavor of linux or if they want to use windows or OSX is totally up to them.
I think preferences really restricts people. I don’t want to say that I’m an android user, an apple user or a windows users. There is no point thinking that way. If you get the job done, who cares at the end of the day.
What do you think are the biggest mistakes that new Web Designers / Developers always make?
I think the biggest mistakes is developers are going too fast. They need to slow down when they first start on something. They got to think all the way through.
What can happen is that if the programming is done too quickly, the code starts to become bad quality. So I think it is about slowing the programmers down and making sure that they are doing good quality work.
Another very common mistake with programmers is, do not repeat yourself (DRY) code. That really locks into a programmer. If you know how to do DRY code, not repeating the same functionality more than once, then that makes you a much better programmer, but that takes time and it takes patience. You have to read a lot and you have to understand ‘Do I break this function into one central function or do I have to break it apart,
You have to read a lot and you have to understand ‘Do I break this function into one central function or do I have to break it apart, do I abstract it or extend it.’ It is understanding where that level is. It is understanding where you draw that line between productivity and just messing around and doing something. Finding that line takes a long time and sometimes as a manager I
It is understanding where you draw that line between productivity and just messing around and doing something. That’s absolutely perfect.
Finding that line takes a long time and sometimes as a manager I have to try to get the developers to understand where that line is for them.
What has been your biggest achievement in Web Development and how did you do that?
I still feel like I haven’t achieved much. I feel like I’ve got a lot more to achieve. So I’m never really too content. Even if I do sell a startup or we make a nice,big, famous startup, I feel like this still wont to be the end of the journey.
But so far turning from a programmer to a manager has been my biggest achievements. It has been a really cool learning curve understanding how to work with employees, how to keep them happy and managing and using various tools and opening up discussions with staffs to make it better for everyone.
I do miss programming occasionally but I wanted to move into management in the last couple of year and I think the transition is going well and I’m just looking for the next thing there.
Can you please tell us your 5 tips for our students at Web Courses Bangkok who want to be successful in Web Development.
Get into the libraries
I think the first tip is to get into the libraries. Into libraries such as ruby on rails, jquery, CodeIgniter. Whatever you’ve got on hand basically. Don’t just install it and forget about the library. There is some amazing code in the library.
You got to remember that the library is coded by other programmers. So spent that time to get into the library. If you got a bug, maybe it’s not your code, maybe it’s the library. Maybe you have picked up some bleeding edge library that has only been released in the last couple of months. You going to have to get into the library.
So that is my first tip is really going into the library. Don’t just accept it at face-value. Don’t just install jQuery and start using it. Spend that time , go into it. Figure out how does it select a particular element in the document. You going to learn as a programmer. It’s gonna make you 100x better as a programmer.
For example like musicians to get better at music, you watch the people play music, to get better at golf, you watch people play golf. If you look at other people’s code, and there is an unlimited amount of code out there, you gonna get better and it’s just gonna subconsciously go in. So that’s my first tip
Second tip would be do it. Don’t just mess around. Actually get those libraries installed or whatever else and start putting something together. Get it uploaded. That is the most important thing that I really want to see.
Especially if you come for an interview, maybe you don’t have too much commercial experience or the commercial experience that you’ve got, you’ve been working in a team of 4-5 people and you can’t really put a name to some piece of code that you’ve actually done.
You can always go and build something quite quickly nowadays and upload it. So that’s what I really want to see. I wanna see people who actually do it rather than talking about it all the time or fill up their resume with XYZ technologies. As you do it, upload it and play around with it.
That’s the only way that you get better. Fail and keep failing and that is the whole startup philosophy ‘Fail until you make it’ or ‘fake it until you make it’.
The more you do, the more you kinda go ‘right I’m bored of it, I’m gonna move on to the next thing’. That’s fine. Every developer does that. Every developer has their own little startups but just do it. That’s the most important thing.
Put the logic in
Third one is code and I keep talking about libraries and do it and things like that. Put the logic in. Don’t just expect the modules that you are installing to actually do everything or do everything that your customers wanted to do.
For example, there is a lot of ruby on rails modules that you can install and you can start using like device, user sessions and tagging and whatever else. But it doesn’t mean it’s gonna fit in exactly into your system.
So fork it, put it into your code, put the actual module into your repository or do a subrepository and actually code it. Change it or use your own module. Learn from that, use it as a template and actually code it.
Don’t just take things off the shelf, put it all together and expect your customer to be happy or your end-customers, people who going to be signing up to the website. Modify it, code it, create the logic. Don’t just leave it as a skeleton code and put the libraries on. Actually put some logic in there. That’s what a programmer is and that’s what we do.
My fourth tip would be to talk to customers. Learn how to communicate between developers and customers. Sometimes I find myself a little bit pedantic. I am still a programmer but that works with me.
Gets the job done and it stops the customer getting bad quality work that may ask for something but they may not ask for it 100% clearly. So I am not gonna just take what they have and what they want and then deploy it and do it.
I am gonna challenge it. Devil’s advocate or whatever. We gonna pull it apart and agree to do something. So I think that communication between customers and the programmers or even just yourself, if you are a freelancer is a really, really huge industry at the moment.
Everybody, especially in Bangkok, is after a CTO( Chief Technology Officer). I probably get one, at least one email or phone call a month asking me to take part of a new project and sometimes they just send an inquiry and you find out that they are actually after a CTO. They don’t have a CTO.
Every startup, every technical startup and it’s probably going into many other sectors now where you need that CTO. And if you’re a programmer and you’re decent programmer and you can talk to customers, the value of that is one of the highest values at the moment.
I think it’s just keep going up and up and up because the lack of people who can actually do that is becoming apparent. If you want to be a CTO go towards that, understand how to talk to the developers, understand programming first of all.
Get at least 3-4 years under your belt of actually programming day to day and then learn how to speak to customers or if you just naturally have it, that is a massive skill at the moment.
The fifth skill is patience. I’ve mentioned this already and I think it’s one of the biggest things. Like I said, startups take 5-7 years roughly to excel and you gotta those 5-7 years and longer. If you cant then
If you can’t then don’t do this industry. Some people, the unicorns and whatever else, they do pop up after a year and sell out after the second year. That’s still two years. That’s still quite a long time. That’s day in and day out.
You got to keep doing that and if you can show that persistence and you can show that you’ve got that dedication to do it, then you’re increasing your chances of success and luck. If you can increase your chances of success and luck, then do it because you might end up being a wealthy person or an extremely happy person, sometimes both. So I think patience is one of the biggest things.
Want to Learn More about Web Development?
We have a course for developers that need enhancing their skills, brush up their knowledge, or learn new software and languages, all personalized to fit your needs