We want someone who uses or wants to use test-driven development and unit testing; someone for whom coding without IoC is like typing with oven gloves on; someone who never stops refactoring. We want a developer who is always learning and improving: someone who is keen to stay at the leading edge of technology, and to keep us there too.
The successful candidate will get to work in an exciting environment where he or she gets involved in every aspect of the development cycle, from planning and architecture to UI design and deployment. It's a place where even a new hire can put his or her mark on things quickly; where the developers really get to drive the technical decisions and practices.
We run an Agile / Scrum process, which keeps us all pulling in the same direction, and we ship every couple of weeks. We have fast machines with 3 monitors, VS2015, Git, ReSharper, NCrunch, continuous integration with TeamCity and all the other goodies you could want.
- Experience with - or interest in - unit testing and test-driven development (TDD).
- Good design skills: understanding and application of DRY and SOLID principles, inversion-of-control, and design patterns.
- Understanding of good software architecture, especially in the context of web applications, on both the client and the server.
- A commitment to acquiring deep knowledge of development tools.
- Focus on quality and learning - your code will be peer reviewed, and you will review code written by other team members.
Technologies - must have
- Good understanding of modern C# (6.0+), including LINQ.
- Working understanding of SQL Server and T-SQL.
- Experience with developing web applications, particularly with modern techniques.
Technologies - nice to have
- Asynchronous programming (async and await) and the TPL.
- Understanding of PowerShell, or familiarity with scripting in another language. We use PowerShell every day for scripting builds and server tasks, and we live at the command line on our dev machines.
- Git version control system.
- You can communicate freely and clearly with developers and business analysts - and where applicable, customers - to make sure your implementations meet customers’ needs.
- You can produce code of high quality and reliability through thorough, honest testing (automated and manual), code reviews, and continuous integration.
- You will be committed to constantly learning and improving your skills as a developer. This includes both your skills with specific technologies and your general ‘software craftsmanship’.
- You will actively participate in the design and architecture phases of development: eCargo encourages innovative ideas from throughout its team.
You will be part of the following Scrum team:
- Product Owner / General Manager of eCargo
- Business Analyst
- 6 other software developers
Since this is a small team, you will need to be proactive and bring your ideas to the table to help us build good solutions to real problems. You will need to be cross-functional and able to quickly learn and work in all the technologies we use.
All developers in the team are expected to engage in all parts of the software development life-cycle, including:
- Architecture and design
- UI design
- Automated build and deployment
- Operational scripting
- Tool-building and development domain maintenance
- Process improvement
The eCargo team designs, develops and supports the eCargo Freight Management software, a cloud based enterprise product used by hundreds of NZ and Australian based companies to manage their freight movements and costs. Formed in the same incubator as TradeMe in the early 2000s, eCargo has become a major player in its industry.