Martin Samson [masom]
How did you begin programming and at what age?
Started programming around 14 on QBASIC, but really started with SphereScript, a language built for a Ultima Online server emulator.
What languages do you code, and in what platforms?
Linux and FreeBSD are my platforms of choice.
What machine configuration and operating system do you use?
AMD PhenomII Quad-core. Linux (Fedora)
Please list web addresses where we can see some of your work
As most of the work I do is in the embedded / private network world, the only way to really see it in action is to rent a room at the Chicago Hilton or the InterContinental Magnificient Mile. In the room you will see a touchscreen computer. Otherwise, for product details, http://www.hcn-inc.com has most of the information.
As for other work, https://github.com/masom is a good spot to go to see my open source stuff.
What motivates you to undertake a new project?
The chance to learn something new. Each project usually has a very domain-specific aspect no other project will have like integrating payment processors to writing code in the SMBios data structure.
What part of project development is most gratifying to you?
Solving a problem in a neat way and then explaining it to others.
From the outside, it seems a rational job, but is creativity necessary for programming?
Of course. Without creativity, there would only be banking / reporting applications.
What conditions do you need to concentrate when programming?
A proper environment (good lights, airflow) and a nice workspace.
After working for long periods of time, have you ever felt as though you were in a bubble?
When you check out code you wrote time ago, what's the main difference with respect to code that you write nowadays?
Previously written code usually looks horrible as I usually learn a better way to achieve my goals. From unit testing to code documentation, there's always room for improvement. When going back to old code, I see how much I have progressed.
Do you still buy programming books, or do you learn everything from online sources?
Mostly online sources
Do you think programming should be taught at the basic education level?
Maybe something like Lego Mindstorm.
What has been your experience in marketing your software?
Unless you already have customers or a very specific target audience, it is going to be hard.
What do you learn from software users?
What to really focus on.
What would be your solution against piracy?
It is actually easier to pirate a DVD/Game than to buy it and try to use it.
Ex: A DVD/Bluray will play minutes of preview/warnings/FBI warnings/Piracy warnings and takes time to load. A pirated movie will play instantly without any annoying warnings/previews.
Ex: A new game comes out with DRM/Authentication. Authentication servers goes down or your internet connection is unavailable: You can't play the game. If you pirate the game, you can always play it...
Would you consider yourself rigorous in the organization of the coding that you write and on commenting it?
Mostly. There's room for improvement.
How do you calculate the budget for a software project?
I cut down the software into phases / iterations. By using previous experiences on accomplishing certain tasks, you can then estimate how much time feature X will take and how many people should be working on it. Take the time estimate and add 20%.
What are your favourite games and on what platform do you play them?
Super Smash Brothers/Nintendo (N64..WII)
No More Heroes/Wii
Half-Life Series (HL, Portal, etc.)/PC
Team Fortress 2 /PC
How often do you clean dirt-buildup on your keyboard?
every two weeks on average.
How do you feel when friends or family ask for your help in solving domestic computer problems?
Having worked as a computer repair technician for a few years, i feel obligated to help them. If it is close family (siblings/parents) I am always glad to help.
It feels like you cannot really say no.
As machines for development, what opinion do Macs deserve?
They are awesome for development.
If you need to test multiple platforms (web dev for example), the mac is the best machine for it as you can use Bootcamp/Virtualbox/VMware to test on other os'es
How do you protect your computer from viruses?
I run linux. But more importantly, i am aware of what i download and use. Time to time i will run ClamAV from linux on my windows partition just to check.
I always keep my machines patched and up to date.
In social settings, do people become interested when you tell them you are a software developer?
A little bit but usually not.
Do you work alone or in a team? Which do you prefer?
I work in a team environment and love it.
Are you one of the first to update to new software when it comes out, or do you normally wait until more stable versions appear?
A little bit of both, depending on what software it is. I am an early adopter for technology but I am usually careful on the server-side.
What is your main reason for not meeting project deadlines?
Wrong/bad specifications. No peer review of "completed" code.
In your opinion, which company helps software developers the most?
A lot of startups are very keen on helping developers. Oracle is the worst while Microsoft seems to be coming back. Overall, open source-based businesses are usually the ones who helps the most (See twitter/facebook/github/10Gen)
How many breaks per day do you normally take?
Lunch. Then it is productivity-based. I will usually not work when i do not feel like i'm being productive.
At this point in your career, what would be the project of your dreams?
I am already working on a dream project. (see www.hcn-inc.com )
What is your next project?
Big-data crunching / analytic
Which websites or forums for programmers do you frequently visit?
Stackoverflow, reddit, slashdot
What advice would you give to someone who wants to become a programmer?
It is an amazing world if you are passionate about technology, otherwise it will be a drag.