What type of developers are you looking for?

You consider yourself a software crafter. You care about and are proud of the code you write. You care about doing meaningful work and providing value to your clients or employer via well-crafted code. For you, writing code is not just a job but also a passion.

Test-Driven Development is second nature to you and that’s how you write code. You don’t use “lack of time” as an excuse to do a mediocre job, and fully understand the long-term costs and benefits of hacking a project together. You prefer to work in small increments, trying things out and iterating rapidly, tightening the feedback loop as much as possible.

You are a team player. You understand that software lives on long after it is first delivered, and that many different people will contribute to it over its lifetime. You enjoy working with other people, including other coders but also designers, business analysts, testers and anyone else working on the same project. You enjoy frequent collaboration, including pair-programming.

As a passionate developer, you spend a considerable amount of time outside working hours investing in your craft, learning new technologies and practicing different techniques and approaches. You create for creation’s sake, building pet projects or contributing to open-source development. You don’t do this because a client or employer asks you to; you do it because you want to.

As part of the learning process, you consider it important to share what you know with others. This might take the form of a blog, some code on GitHub, attendance at community events or something totally different. You also consider it your responsibility to help your fellow colleagues; perhaps this manifests itself as formal knowledge-sharing sessions in the workplace, but just as likely, it’s simply coaching as and when it’s necessary.

You understand that languages and frameworks are just tools. You choose the best tools for the job without being religious about it. The majority of books and articles you read are the ones that makes you a better developer and not a specialist in a specific framework. At the same time, you are extremely proficient with at least one or two programming languages and the tools around them, including testing frameworks, wiring and dependency injection mechanisms, user interface libraries and development environments.

You understand and embrace Agile processes, and are able to help other people to understand and adopt them. You are able to work closely with clients and product owners and help them to refine requirements and plan the work to be done.

You are proud to be a developer and want to remain a developer. You believe in emergent and collaborative architecture and design; you use your knowledge of SOLID principles, the Four Elements of Simple Design, and Domain-Driven Design to design applications that reflect the business domain.

If you believe you can meet the bar set, we are definitely interested in hearing from you.

What technologies do you use?

We use whatever is fit for purpose. We love trying new things and experimenting, and you’ll be hard-pressed to find an occasion where none of us are learning a new technology, paradigm, skill or technique. We value the ability to learn new things over specific existing knowledge. Our industry is incredibly fast-paced, and there’s always something new over the horizon.

Right now, the majority of our clients use Java, Scala, and C# and those are the types of skills we are looking for. Knowledge of any other language and tools in the JVM and .NET ecosystems (like Clojure and F#) is highly desirable but not essential. Everything else really does differ from client to client, and you will learn them on the job.

What is expected from a craftsman at Codurance?

As a craftsman at Codurance, you are expected to be able to:

  • build well-crafted bespoke applications for our clients,
  • lead by example: you strive to work at your best, you don’t cut corners, and you always behave with professionalism, regardless of which environment you are in,
  • work with fellow craftsmen and our clients, helping them to get better at delivering quality software,
  • mentor apprentices: helping those with less experience along their own journey in becoming a craftsman,
  • become proficient in multiple languages and technologies,
  • give something back to the community, writing articles, sharing code, giving talks, running workshops, and participating in external technical communities, especially the London Software Craftsmanship Community (LSCC), and
  • be humble, always respecting, sharing knowledge with, and learning from developers and others in the software industry, regardless of their skill and experience, whether they are part of Codurance or not.

What are the advantages of being a craftsman at Codurance?

  • Exposure to many different projects, clients, industries, and technologies.
  • Being part of an amazing team of craftsmen, which guarantees that you will always be learning.
  • Working for a company with a flat structure, with no managers, no architects, and no team leaders. Just awesome developers.
  • Recognition and respect for being a great developer.
  • 5 days of conference allowance per year.
  • Get to know awesome craftsmen from all over Europe.
  • Encouragement to speak at conferences.
  • You will have autonomy and full access to the company’s financials.

Do I need to be based in London?

Yes. Or at least at a commutable distance from London. Although we give consultancy and trainings all over Europe, most of our projects are based in or around London. Most of our clients expect us to be in their offices frequently and we also expect our craftsmen and apprentices to meet very regularly and in person in our office.

If you don’t live in the UK, we can help you with some of the moving costs as long as you already have the rights to work in the UK.

I want to apply. What do I need to do? Hit the green apply button!

If you’re stuck for things to talk about, we have some suggestions:

  • How passionate are you about software?
  • What does software craftsmanship mean to you?
  • With which technologies are you comfortable?
  • Which technologies are you currently learning?
  • Which technologies would you like to learn?
  • What are your favourite technical books / blogs?
  • Which technical communities do you actively participate in?
  • Have you spoken at or attended any conferences? Which ones?
  • Are there any pet projects you are working on? Tell us about them. And relax; we promise not to steal your ideas and won’t tell anyone.

We also want links. If you’re up for sharing any of the following, send them along. If you don’t have them, that’s not a problem; we value people, not text.

  • any blog posts or articles you’ve written
  • your Twitter account
  • any open-source projects you’ve worked on
  • any pet projects you’re particularly proud of
  • links to any applications you’ve worked on that are publicly available
  • anything else that can help us know more about you

Then just sit back and relax. We’ll be in touch.


Tagged as: Agile, C#, Clojure, DevOps, F#, Java, Scala, TDD, XP