Onespacemedia’s lead developer, Dan Samuels, started coding at the tender age of 14 and worked as a freelance programmer while still at school. A veteran coder, Dan has experience in a multitude of programming languages and a wide portfolio of websites for companies large and small. Here, Dan gives us an insight into his role and reveals his hidden talent!
I act as the go-to person when any of the developers are having issues with their code, have questions on implementation, need help with servers etc. I write a lot of the management software we use to provision servers, commit code. Alongside all of that I work on client projects - typically the more complicated ones - to deliver to our high standards of design and technical functionality.
I wake up in the morning at about 7:30, I read through all of my emails, respond to anything I need to then head into the office for around 9:20. When I get in I check my emails again, respond to any support tickets, take care of any urgent tasks which have come up and catch up with the team. I then look at the work I have on for the day and come up with a plan, which could be to have a certain feature complete or fix a certain segment of bugs. Throughout the day I’m constantly in communication with the other developers, helping them out by answering questions or reviewing code.
A strong logical mind, good problem solving skills with the ability to think about different solutions to the same problems and then evaluate the merits of each of them against each other. Being able to adapt to change and keep progressing on a personal level is key - if you stay rooted in one technology stack and never look outside then you’re never going to grow as an individual. Diversity is a good thing.
The main tools I use are Chrome, Sublime Text 3 and iTerm 2. Chrome is an obvious choice for anyone making websites; the developer tools are really unmatched by any other browser on the market at the moment. Sublime Text is a beast of a text editor, I have it customised and tuned to my needs so I can be efficient and fast when working on projects. I know a lot of developers shun applications like Sublime in favour of older applications such as vim or emacs, but I’ve never really enjoyed working in that way. iTerm 2 is just a great replacement for the default Terminal.app in OS X, the main feature I use is split panes with a typical iTerm window having 3 panels at the same time, one for the Django development server, one for Compass/SASS and the other for running ad-hoc commands.
I think you have to understand the complexities of each other’s roles - designers need to know what is actually possible to build and developers need to understand design decisions and work with the designers to iterate and improve based on the combined knowledge. You actually pick up aspects of these skills just by being around people who are great at their jobs. I’ve designed a couple of little side projects (such as my personal website) and they look much better than they would have done if I had designed them 2-3 years ago.
That I have a variety of different problems to solve and that there’s always something to do. At the moment I’m working on a bunch of migration scripts to move some of our websites from one hosting provider to another and I’m learning a lot of new skills and technologies along the way. It’s also great to be on the bleeding edge of technology, trying out new frameworks, playing with new toys and just generally having fun doing what I do. It’s nice to have the freedom to be able to experiment with new services, to be able to change procedures and improve workflows - it means the whole team benefits and becomes more efficient over time.
Keeping on top of my own work while still providing assistance to the other team members would probably be the biggest thing. I have a lot of intense work where I have to get my head down and solve some tricky things, but I also need to be available if any of my other team members need help. I think it’s important for a team leader to be someone who is also on the front lines, someone who is actively pushing out work alongside them - not someone who just looks down at everyone else doing work and just pushes paper around.
Technically Churchill College was my biggest project and it has some great tech in it. I always look back at projects after being off them for a little while and think about how I could have done things better - I don’t expect that to ever change as I’m constantly learning new things and improving my implementations of solutions.
I’m not sure there’s much that people don’t know about me to be honest! I guess the only thing might be my achievements within the nerdy World of Warcraft. I play at a fairly high level, typically within the top 200 or so in the world (out of the 7+ million or so people who play), it requires a lot of dedication and a fair bit of skill. I have a ton of fun playing and I’ve travelled across Europe meeting the people I play with.
This post originally appeared on the Onespacemedia website.