Job application and interview processes can be long and difficult. It’s really tricky to know what an employer is looking for or whether they meet your expectations. Job descriptions try to explain a role but often don’t reveal much about the selection criteria for candidates. How brilliant would it be if employers told you what their criteria was from the beginning?
Here at Kainos our multi-disciplinary teams develop software supporting digital transformation. Teams get to work on creating and building large-scale digital services and products that are transforming citizen and user experiences.
We like (software) architects to work within our teams, guiding them to make the right design and technology choices as they build a software product. We look for our architects to inspire and influence those around them not just in how they work, but how they grow and learn. We trust our architects to make important decisions so it’s important we hire those who will make good ones.
But we have been finding it really difficult to find the right type of architect to match our growth. We think openness and transparency about what we are looking for could help with this.
What do we mean by “Architect”?
An architect (in the software sense) is a dedicated role that requires breadth to understand how different elements work best together. It also needs a depth of understanding of code, components and products. This is why our architects are engineer-architects not process-architects or ivory-tower-architects.
Architect and architecture have no consistent industry definition. When we say “architect” we mean someone who is responsible for making decisions about software design. Rory said it well,
An Architect is someone with sufficient experience to make decisions and guide others in the right direction, balancing dogmatism and pragmatism, know that they don’t know everything, understand that they have more they can learn, and above all else understand how they can use experience and knowledge to guide their decision making.
We scope the decision-making of architects at three different levels,
- Technical Architects make design decisions about the application or infrastructure for a single team. Technical Architects will spend most time with code compared with other architects.
- Solution Architects make design decisions for a whole solution which may stretch across many teams. They may specialise in infrastructure or application or data but have an understanding of the others.
- Principal Architects make design decisions for larger solutions or across many software products. They do this with responsibility for application, infrastructure and data design.
This forms the core of our architect roles. There are of course additional responsibilities that Technical Architects, Solution Architects and Principal Architects will have — these are described in the job descriptions. The point of this article isn’t to describe these roles but instead to focus on the characteristics of the architects we want to hire.
Who are we searching for?
Our search is for individuals who have the right experience and a similar mindset to us when building software. However, someone with all the right technical experience but who can’t work within our teams is a bad fit. It is important that we find those who care about building software that is well-considered, tested and meets user needs.
Specifically we are searching for those who are,
- Switched on to what architecture is. Architecture for us is about making good design decisions with the right technologies. It is more about design than selecting technology products (though this is part of it). It is more about building software products well than writing options-papers (this is also necessary sometimes).
- Excellent decision-makers. We want to see evidence of thoughtful, well-considered decision-making in the recent past. This is critical because this is the primary role of an architect.
- Engineers who understand code. Architects need to have a current understanding of code to be able to make good design decisions. Most of our architects don’t have time to write code every day. This is understandable given their primary responsibility is not to write code but many still make the time because they enjoy it and it keeps them current.
- Used to delivering working production software to real users. Architects will have experience of delivering through to production. This will ensure a better understanding of non-functional demands, operational needs and user feedback.
- Switched on to avoid non-functional failure. Architects need to advise on the priority of non-functional features (often over functional features) to product owners. This is necessary to avoid technical failures. To do this they need to understand operational issues and how this will affect their design decisions.
- Excellent communicators. Clear thinkers also need to be able to communicate their thoughts to others verbally, in prose and in drawings. Architects should be able to communicate easily with both developers and those less-technical. Waffle in CVs or interviews or inability to draw designs is a sign of unclear thinking and/or communication.
- Able to influence customer thinking. Architects will be advising customers regularly. They will need to be able to talk with and influence the decision-making of both technical and non-technical customers.
- Prefer Open to Closed. Open standards and open source over the last 20 years have helped make it easier to build better software. We are looking for those who recognise this and who prefer open to closed.
- Collaborative Leaders. Architects are experienced but they don’t know everything. They have to rely upon their teams to make the best decisions. We want architects who learn from the development team instead of dictating designs. We look for those who lead collaboratively, encourage and rely upon specialist knowledge and opinions from within their team.
- Simplifiers not Complicators. Building software is difficult. Those who make it more complex than it needs to be create unnecessary problems for teams, maintenance and operations. So we look for those who are striving to simplify.
- Always Learning. Like many of the attributes described here learning does not just apply to architects. Active, thoughtful-learners are typically focused on improving how things are done and are not content with the status quo. If architects are always learning this leads to better decisions.
- Helping and Growing other People. Kainos is a growing business that needs our more experienced people to grow others. Creating opportunities and growing others should be a natural thing for our architects.
- Pathfinders. We love to work with people who challenge the way things are done. We actively encourage people to spend time finding new ways to design and build software.
Things we’re flexible about
Many of the characteristics we’re looking for are more about an architect’s mindset that are evidenced through recent experience. This might seem like a high bar: it isn’t as simple as just finding people with experience of x and y technologies for z years.
However, there are some things that we are flexible about.
- Java. We don’t have a technology policy that mandates which tech stacks we will adopt. However, we prefer open source and most of our teams over the last few years have chosen to use Java/JVM (or .NET) and Javascript. We are prepared to help upskill hires who don’t have deep Java experience.
- Agile. We prefer to work with an agile delivery model. However, we do not require agile experience as a prerequisite for hiring. What we are looking for is a mindset that is suited to work in a way that doesn’t plan everything up-front, accepts change, works collaboratively and is focused on improvement and value. We are prepared to help upskill hires who don’t have deep agile experience if they have the right mindset.
- Commercials. We are a commercial organisation and all staff especially more senior people need to have a realisation of the commercial impact of their decisions. Architects will also support the sales process with their technical expertise to imagine, illustrate and size solutions. We are prepared to help upskill hires who haven’t worked in commercial organisations before.
- Location. We hire architects from all over the UK, Ireland and Poland. Some live close to our major offices in Belfast, London and Gdansk. Others are home-based. Depending on customer needs we will often co-locate with our customers. We don’t ask people to travel 5 days a week but co-located projects need its architects to travel to be with the customer and teams.
- Certifications. We don’t look for architecture professional certifications such as TOGAF because we don’t find that these distinguish good software architects. So we prefer to use our own criteria.
If you recognise yourself in the description above and you’d like to build great software with Kainos, please find out more here.
Thanks for the contributions and edits from Kainos architects: Rory Hanratty, Will Hamill, Kyle Thompson, alastair allen, Joseph McKavanagh and Damien Taylor.
Hacker Noon is how hackers start their afternoons. We’re a part of the @AMIfamily. We are now accepting submissions and happy to discuss advertising &sponsorship opportunities.
To learn more, read our about page, like/message us on Facebook, or simply, tweet/DM @HackerNoon.
If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories. Until next time, don’t take the realities of the world for granted!