Creative + Innovative
We fully support individual creativity and even encourage team members to take on personal development projects.
Many of our engineers work on side projects in their spare time. Some develop games while others work on audio synthesisers, and many more interesting projects. We even have a guy called Dan who is writing his own language and compiler just for fun. We cherish individual creativity and people with innovative ideas, and we find that these are the types of people who really shine at Atlas. On more than one occasion, the side projects people work on in their spare time have helped us solve problems that come up in developing business applications.
We also always use the latest technology here at Atlas. When we start a large project and know the target release date, we sometimes use technologies that are still in beta if we know they will be RTM before the planned release date. An example of this is ASP.Net Core. Taking this approach can sometimes lead to some pain early on in the development cycle, but it gives our developers valuable experience and also gives our customers a final product with a longer support life.
Customer Comes First
We have a variety of customers, but they always come first.
Our customers vary from small startups like Inform Direct to large international organisations that have been around for decades like the charity Shelter. We like to work agile and give our customers lots of opportunity to give us feedback. We use Trello to allow our developers to communicate directly with our customers to get answers promptly and logged in the correct place. We always have at least two developers working any given software project. We typically have a single point of contact on the customer side, someone who is responsible for gathering information, answering our questions, and making decisions. We usually work with the customer remotely, but will have face to face meetings from time to time.
Uses Agile Methodologies
We use Trello as our Kanban board.
We work in sprints and a sprint of work for our developers typically lasts between 1 and 2 weeks. With our larger projects, we have a daily call with the customer which acts as an opportunity to raise any concerns or issues. With smaller projects we prefer a call or meeting with the customer at the start of the sprint and only arrange other calls as required.
We understand that software development projects are often difficult to specify in their entirety at the outset. Our agile software development processes accommodate the unknown, providing flexibility without sacrificing speed and quality of delivery. We work with customers from the outset to define the high level vision for their development project, and what they hope to achieve. We then perform multiple sprints of development – making changes to requirements following each sprint as required.
Our customers love the transparency and control this provides them.
We invite our customers to our Trello boards so that they can see exactly who is working on what and when.
We also use Harvest to track time against each task and give these timesheets to the client. We are completely transparent in what we do. We also have open plan offices where all developers can hear all the conversations other developers are having. This helps teams keep up to date with each other and allows for knowledge transfer between senior and junior developers. While we don’t formally program in pairs, junior developers feel comfortable asking senior developers for help whenever they need support.
Good for Junior Devs
We have had junior developers come in with little to no knowledge of programming and they have worked their way up to becoming senior developers.
We proactively invest in the professional development of all our team members. Both Simon and Dean, the founders of Atlas, have been through the apprentice scheme (an alternative to college or university in the UK where you earn-as-you-learn in a job) themselves and have seen how well it works. In fact, our first long-term employee began as an apprentice and is now a senior developer who has been at Atlas for over 10 years! Many of our junior developers start as apprentices and learn from more senior developers (some who were once apprentices themselves). We typically have around one junior developer for every two senior developers, which helps maintain a learning-forward culture. If you are a junior dev interested in joining our team, reach out! (We recently invited a university student who was on a one-year placement with us to come back full-time once he completes his final year and you can read about Sebastian’s time at Atlas on the website.)
Read more about Apprenticeships at Atlas and how we support our apprentices.
High Employee Retention
We are a close-knit team, and some of us have been here since the very beginning when Atlas was founded 10 years ago.
We have a highly skilled team of developers that are all friendly, and many of us play computer games together over lunch and outside of work. The majority of our team has worked here for over 3 years. We have an intensive hiring process to make sure we don't hire any anyone that would make our working environment suffer as a result. The interview process is 3 phases starting with a 20 minute C# theory test, followed by a 1-hour practical test where the candidate can show off their skills, finishing with a sit down interview where we find out more about the candidate and the candidate finds out more about Atlas. We are a young company that has only been around for 10 years, but we have recently congratulated one of our first employees on his 10th year anniversary of working at Atlas.
High Quality Code Base
We value code reuse.
As our customers often require similar functionality, we help them save money by reusing code from our existing codebase, that we call the Atlas Framework. The code that is part of our shared codebase is well written, tested, and maintained because we have many projects using it (any bugs are found and addressed quite quickly). When a customer comes to us asking for some new functionality that we don't already have in our shared codebase, we make a decision on whether to try and separate this new functionality out into something that can be reused, or to bake it into their application.
To help ensure that our code remains high quality, we always ensure that at least two developers work on each project and don't have anyone working in isolation. If a developer ever sees any issues with anything that has been written, we often see who wrote that code and go back to them with some feedback to help them write better code in the future. When we work on a software project we also factor in extensive software testing by our dedicated team of International Software Testing Quality Board (ISTQB) qualified software testers and we use our comprehensive software testing plan documents.
Rapidly Growing Team
We are investing our profits from our B2B custom software development into developing B2C products.
As we take on more custom software projects, we have fewer developers to work on our own software products and want to ensure that there are enough resources to support both sides of our business. We are growing quickly and new hires will work on our own software products first like Staff Squared or Fundipedia, where they can learn our software development and software project management practices while demonstrating their strengths and skills. Once a new developer has settled in, we then put them into teams for custom software projects for our customers and externally facing products.