(Junior) Software Engineer
Posted on Sep 30, 2019 by Illuma Technology
(Junior) Software Engineer
illuma is an independent advertising technology company that runs proprietary machine learning tools to provide clients with a more intelligent way to scale their most valuable audiences online.
Our technology has been developed by leading academics in data science and artificial intelligence fields, combined with input from senior advertising and publishing professionals. Our core clients are premium publishers, major programmatic advertisers and specialist (programmatic) media buyers. We differentiate in a cluttered technology sector by challenging most of the norms of mainstream data-driven advertising: whereas most technology companies promise the needle in the haystack, we simply find more haystacks.
For those who are looking to take their first steps in their career, this is a fantastic opportunity to work in a truly dynamic company under inspiring leadership, where you will have the opportunity to work on some of the most exciting technologies in the sector. On a day to day basis you will be responsible for and take the lead on a number of projects where you will use your analytical skills to understand the given brief and foresee any technical challenges that may arise. Alongside others you will be responsible for data management, data analysis, data visualisation and interface development.
Key Responsibilities and Accountabilities
- Use a combined knowledge of computer science and applications, modelling statistics, analytics and maths to solve problems
- Design and implement build, deployment, and configuration management
- Test implemented designs
- Build and test automation tools for infrastructure provisioning
- Monitor metrics and develop ways to improve
- Brainstorm for new ideas and ways to improvement development delivery
- Manage CI and CD tools with team
- Improve infrastructure development and application development
- Follow all best practices and procedures as established by company
Knowledge, Skills and Experience
- 2:1 degree or higher from a top university in Computer Science, Software Engineering or related area of study
- Excellent written and spoken English
- Experience with software development, infrastructure development, or development and operations
- Experience with data management, data analysis and data visualisation
- Experience with Linux infrastructures, database SQL (MySQL, PostgreSQL), CI/CD tools, shell scripting
- Experience with Virtualisation (e.g. Docker), configuration management (Ansible, AWS CloudFormation), access control/security
- Programming languages: Python and R (especially packages for machine learning and data analysis)
- Version control system: Git (Github & Bitbucket)
- Cloud Service and distributed systems: Amazon Web Echo-System, Google Cloud Platform
- Up-to-date on latest industry trends; able to articulate trends and potential clearly and confidently
Communication - able to get one's message understood clearly by adopting a range of styles, tools and techniques appropriate to the audience and the nature of the information.
Team working - able to help build and maintain effective working relationships, working co-operatively with others to be part of a team and lead a team.
Strategic Thinking. Can identify a vision along with the plans that need to be implemented to meet the end goal. Evaluates situations, decisions, issues, etc. in the short, medium and longer term.
Analytical Thinking - Ability to simplify complex problems or projects into component parts, exploring and evaluating them systematically, and identifying and resolving problems.
Planning and organising - Prioritises and plans activities taking into account all the relevant issues and factors such as deadlines, resources, with line manager guidance at outset as required.
Flexibility - able to adapt and work effectively with a variety of situations, individuals or groups. Able to understand and appreciate different and opposing perspectives on an issue, to adapt an approach as the requirements of a situation change
A job description is a written statement of the essential characteristics of the job, with its principle accountabilities, incorporating a note of the skills, knowledge and experience required for a satisfactory level of performance. This is not intended to be a complete, detailed account of all aspects of the duties involved