Engineering SW Developer - Python
We are always in need of applicants of any level/experience, so if you are interested, do not hesitate to contact us whatever you have to offer (our priority is getting the right people, not just filling a requirement), however we are currently particularly interested in:
- Software developers, preferably with experience of Python application development.
Altran UK are currently in the process of recruiting a number of software developers with a range of skills and experience within our Bristol office. These roles are within a specialist business unit inside Altran that is concerned with where software engineering and conventional (mechanical) engineering come together. Our largest clients are the really big names in engineering – like Airbus and Rolls-Royce and we help them with software development around things like automating design, physics simulation, optimisation workflows, etc.
Our current work is focused on new aeronautical engineering software projects, written mostly in Python or Java. These generally involve creating complete applications (GUI through to fundamental engineering algorithms) that are used by engineers at the cutting-edge of their field (they’re bright people). The tools we create streamline, enable or enhance the capability of the engineering teams we work for, and help them to solve real-world problems, such as engine fuel-efficiency, manufacturing times, aircraft range, etc.
Any successful candidate will be expected to have provable software skills, and be able to demonstrate the ability to quickly gain expertise in topics beyond the remit of a normal developer (from the complex mechanics of a jet engine to computational fluid dynamics). Although the majority of work is writing code, customer-facing skills are absolutely essential, as is the desire to work as part of a team to overcome challenges that are not always purely software-related.
We have no expectations as to the background of the applicant: you will be joining a diverse team that includes everything from computer-scientists to chemists. Many of our team are either software developers who have a solid grounding in engineering principles, or scientists and engineers who have very strong software development skills, but what we really care about most is your potential.
Although engineering-focused, the role is (and will remain) primarily that of a developer, and we would expect the successful applicant to be looking for a software-oriented career progression. That’s not to say you will only ever write code, quite the opposite, we need flexible, multi-skilled adaptable people who are not afraid of progressing into positions team- or technical-leadership or authority. We are a software team first, but everyone does far more than just writing code.
Our work is rarely run-of-the mill and certainly not easy. We regularly have to solve complex problems, often well-outside the remit of a standard coder, with all of the team having expertise in at least one other subject area (in addition to software development). We pride ourselves on the calibre of our team, and are looking to maintain that standard.
What also matters is that we are right for you: We are a software team, but we are not Google or a research group: If you want hammocks and beanbags, the latest, bleeding-edge technology and won’t settle for anything else, then look elsewhere. Much of what we do is cutting-edge, research-oriented and always challenging. We do need to keep up with the latest technologies and theory, but they are our tools. Our primary focus is doing work for real engineers, solving genuine problems that need solving today. It is fascinating work, and you will spend time researching and creating, but doing so with the aim of getting the work done, done in good time and done properly.
Take the following requirements with a pinch of salt. The successful candidate need not be an expert with a hugely diverse skill-set now. What matters most to us is your attitude, focus, energy, intellect and aspiration and determination to become one.
- Producing quality engineering-oriented software as part of a close-knit team of developers
- Communicating regularly with customers to report progress, and to resolve problems
- Undertaking regular code and design reviews
- Capturing and understanding customer requirements, and translating them into software design, code and automated unit tests
- The level/experience of the applicant will only influence the degree of technical authority, responsibility and autonomy of the role
- More senior developers will be expected to take an active role in decisions on recruitment and team organisation decision, however all levels will have some involvement in this
- Experienced team members are expected to provide a degree of technical sales- and bid- support or assist with project planning, when needed
- Familiarity with at least one mainstream object-oriented language
- Experience of developing software applications in a professional environment, and have experience of (depending on level – we will often hire juniors with none of these):
- Testing (unit, i.e. Junit, perhaps including mocks)
- User Interface development
- Experienced in using standard tools: IDEs, SVN/Git, CI, Coverage, Static Analysis etc.
- Good understanding of modern software development principles (OO, design patterns, “Agile” methodologies, etc.)
- Educated to degree level (or higher) in a computer science, engineering or scientific discipline, or equivalent experience
- A strong grounding in mathematics (A-level an absolute minimum)
- Good customer interaction skills. You will be speaking to the customer from day 1: asking the right people the right questions and knowing how and what to communicate
- Experience of extracting requirements and understanding them from the customer’s perspective, as well as that of a software developer
- Able to learn new concepts, ideas and domains, to the point of being confident in actively using them, often with limited time to do so
- Strong analytical and problem-solving skills and effective at applying them in a technical environment
- Able to take full advantage of modern software development tools (IDEs etc.)
- Either professional experience of or an active interest in engineering or engineering-related subjects
- Enjoy working in teams of varying sizes where all work and most decisions are shared. You will want a fair say, but will wish to do what benefits the team and customer first
- A strong work ethic: wanting to get a job done, and doing it well
- Caring about quality: a keenness to get a job done properly
- Confident in asking questions and communicating, challenging others and critiquing ideas
- Comfortable having work regularly critiqued as well as reviewing others
- Organised, self-motivated and -disciplined
- Willing to be self-critical, honest and open when mistakes are made or knowledge-gaps found, and with a good understanding of your own, personal limitations
- Seeking continuous improvement and progression. Keen to grow knowledge and skills (new software languages, projects, and engineering domains)
- Comfortable working to regular deadlines, managing expectations and assessing risks
- There will be many opportunities at all levels and we would expect all team members to be willing to take on new challenges and responsibilities as their experience grows
Bonus points (absolutely non-essential, do not let any of these put you off)
- Any skills or interests applicable to the engineering or aeronautics domains
- Configuring CI environments
- Confident in using more advanced language features (external libraries, Java generics, Python Numpy/Scipi, graphing, 3D visualisation, etc.)
- An interest in modern software development practices (Agile, Scrum, TDD, XP, etc.)
- Experience of extracting requirements from legacy code
- Knowledge of build-automation tools (Ant, Maven, etc.)
- Interest or experience of software architecture or more advanced software design principles
- An understanding of current and future software/computing technologies: cloud-computing SaaS, multi-threading, modern web-technologies