Working in a startup is probably the most exciting place to be a developer simply because you’re the master of your own destiny. It’s also one of the toughest places as you will probably have very little safety net or support. Here are some ways to make the most of this unique position and make life easier for everyone at the same time.
Working in a startup is probably the most exciting place to be a developer simply because you’re the master of your own destiny. It’s also one of the toughest places as you will probably have very little safety net or support. Here are some ways to make the most of this unique position and make life easier for everyone at the same time.
Startup job roles often don’t cover the responsibilities of the job accurately, in many cases because they don’t know what’s needed until a particular idea or situation surfaces. A startup isn’t the place to be a jobsworth; if something needs doing do it. Actively take on tasks which are out of your comfort zone and use them as a great way to broaden your skillset.
To be successful you should care about things outside of the sphere of development and technology. For example, you should know:
Knowledge of these kinds of details will not only help you make informed technical decisions (rather than second guessing), but make relationships between teams much better.
There’s no better way to learn than to work with people who are better than you. You may think you’re the greatest developer in the world (you’re not!) but you will still learn by working with people who challenge, question, and inspire you.
The golden rule here is don’t write code for the sake of writing it. You need to get to market as quick as possible, which often means mistakes are made. That isn’t something you should be afraid of, so celebrate when you are successful and learn from any failures.
Make sure you have logging and instrumentation of your application. Failing fast is only possible if you know about failures when they happen. If you generate too many logs, consider services log aggregations services like Splunk and ELK to help aggregate and analyze the information.
Utilize frameworks: you aren’t going to build a business by recreating them. As a general rule, people look for solutions to specific problems and frameworks solve general problems. This will also pay dividends when you make your first hire as you won’t have to explain the custom JavaScript framework you wrote after a weeklong binge on flat whites and craft beer. Equally it’s important to delete dead code and features aggressively to avoid them getting in your way later.
Test your code, but don’t go overboard. Sometimes manually testing is good enough, particularly when it comes to third party integrations. You can never test exhaustively and you’ll never find a better test environment than production. Consider using tools like Github’s Scientist to soft release difficult to test features and see the impact on production.
Automate what can be automated, but don’t spend more time automating trivial tasks than you would spend doing them anyway unless the cost of a human error is too high. Establish standards for coding and enforce them through tooling – for example Rubocop (for Ruby) and StyleCop for (.NET). This will eliminate arguments about coding style and let you focus on being productive.
Talking to other developers and teams in your startup is standard, but don’t forget to talk to your users, especially if you’re in a technical niche. They will give you the best feedback about your product. Don’t assume users with problems are ‘wrong’; at best you will be wrong yourself and at worst you’re missing an opportunity to improve the product. There are plenty of ways to get feedback throughout the company, so make sure it all gets communicated to you and you pass on direct points as needed.
What are your tips for effective development? Let us know on Twitter!