- Sector: Product & Engineering
- Expiry Date: 28 September 2023
- Job Ref: J9989
Join the Access Family and see how we make software ideas become a reality!
Our core value of ‘Love Work, Love Life, Be You’ has been central to our success and so we’re looking for people to join us who share our passion for making things better every day and help us continue to grow.
We are the number one UK headquartered software provider in the UK and are forecasted to grow to a global population of over 12,000 employees by 2026.
What are we all about?
At Access, we love software and how technology never stays the same. It's this passion that drives us to work closely across sectors to understand the business needs of our customers - from the Hospitality sector, to Manufacturing industry, to Not for Profit’s to Construction, and many more.
We're passionate about helping our customers stay one step ahead of the challenges facing their industry and business, currently helping over 60,000 customers to have the freedom to do more.
- Design and develop software solutions to meet agreed acceptance criteria and stories using a range of languages and technologies
- Write clean, self-documenting code that is well structured, well-named, simple and easy to read
- Actively contribute to requirements discussions and requirements analysis, and take responsibility for understanding scope, risk and complexity of changes
- Analyse, identify and fix root cause of defects throughout the various layers of an application
- Identify, compartmentalise and execute refactoring where commercially/technically necessary
- Environment management, management and automation of deployments, understanding and administering of Engineering toolchain
- Support the team's sprint deliverables, through proactive contribution to planning, ownership of tasks, identification of dependencies and basic risk management
- Actively promote a quality focussed approach within the team, showing ownership for QA activities and collaboration with the QA team. Prepared to test own work and that of others to ensure quality.
- Helps to ensure value is achieved through Engineering by understanding customer requirements, identifying dependencies and risk, and clearly communicating and escalating where appropriate
- Passionate Problem Solver: You have a genuine passion for solving complex challenges through innovative software solutions. Your curiosity drives you to explore new technologies and stay up-to-date with the latest industry trends.
- Strong Technical Foundation: You possess a solid understanding of software development principles, algorithms, data structures, and design patterns. Your expertise spans multiple programming languages and you have a proven track record of building robust and scalable applications.
- Collaborative Team Player: You thrive in a collaborative team environment, where you can share ideas and work together to achieve common goals. Your excellent communication skills enable you to articulate technical concepts to both technical and non-technical stakeholders.
- Continuous Learner: You are committed to continuous learning and self-improvement. Whether it's attending conferences, pursuing certifications, or engaging in online courses, you actively seek opportunities to enhance your skills and knowledge.
- Agile Mindset: You embrace the Agile development methodology and can adapt quickly to changing requirements. Your ability to iterate rapidly and deliver high-quality code within time constraints is commendable.
- Strong Problem Identification: You have a keen eye for identifying potential issues and bottlenecks in software projects. Your proactive approach helps to address challenges before they become obstacles.
- User-Centric Approach: You prioritize the end-user experience and strive to build software that not only meets functional requirements but also delivers a delightful and intuitive user interface.
- Quality Advocate: You are committed to producing high-quality code, leveraging best practices, and conducting thorough testing to ensure software reliability and performance.
- Product Ownership: You take pride in taking ownership of the products you work on. Your attention to detail and commitment to delivering a polished final product sets you apart.
- Open to Innovation: You are open to exploring new technologies and frameworks that can improve the efficiency and effectiveness of the software development process.
Your core competencies will include:
- Able to communicate well with team members and stakeholders on deliverables and approach, demonstrating the ability to communicate and listen appropriately depending on the audience. Able to communicate and collaborate with other teams.
- Can provide comprehensive requirements feedback, highlighting omissions, gaps and potential areas of confusion.
- Writes clear & self-documenting code, organises methods and classes appropriately. Able to refactor existing code to improve readability. Good understanding of technical and commercial drivers when making decisions on refactoring.
- Able to follow pre-defined source control procedure, committing and merging code, dealing with conflicts. Able to perform some non-standard procedures in terms of source control
- Ability to efficiently prove the source of defects and demonstrate unit tests and integration testing for eventual pathways following the proposed fix. Can use existing telemetry to identify bugs in running application.
- Good working knowledge of build and deployment steps of their core product. Able to troubleshoot a broken build / deployment, provide a post-mortem and suggest improvements going forward. Understanding holistic solution, bidirectional dependencies, and able to raise project related risks during development.
- Plays an active role in sprint planning and management. Makes recommendations in planning in terms of capacity, priorities, risks or blockers. Helps drive the planning process, ensuring that everything can be 'done' within a sprint, according to the team's Definition of Done.
- Good understanding of QA best practice, including: impact of branch/merge approach on QA, role of source code management & environment/deployment management, requirements analysis and cost of defects. Collaborative approach with QA to find defects as early as possible.
- Able to contribute to the setting up of the Engineering environment (provisioning, reflection of production, understanding of Use Cases for environments). Has good knowledge of the systems and how the different services interact and their dependencies. Understands how production & environments work, how systems are administered.
- Aware of trending design patterns in the technologies they work in, able to select the best design pattern for the job in hand and articulate to others why this has been chosen. Ability to denormalise data for performance and use advanced techniques whilst considering and maintaining database integrity.
- Demonstrates good product knowledge and understands the value of any engineering.
- Regularly takes ownership for team retrospectives and goals.
- Programming Languages: Proficiency in programming languages commonly used for desktop software development, such as C, C++, Visual Basic 6.0, COM, Delphi
- GUI Frameworks: Strong experience with desktop graphical user interface (GUI) frameworks, such as Qt, Windows Presentation Foundation (WPF
- Operating Systems: Knowledge of Windows operating systems to build applications tailored for the platform.
- Object-Oriented Design: Solid understanding of object-oriented design principles and software design patterns to create scalable and maintainable desktop software solutions.
- Version Control: Proficiency in version control systems like Git or Subversion to manage code repositories effectively and collaborate with other team members.
- Unit Testing: Experience with writing unit tests for desktop applications to ensure code quality, maintainability, and reliability.
- Debugging and Troubleshooting: Strong problem-solving skills and the ability to debug and troubleshoot issues in desktop software applications efficiently.
- Memory Management: Knowledge of memory management techniques, garbage collection, and best practices to optimize desktop application performance.
- User Experience (UX): Understanding of UX/UI design principles to create intuitive and user-friendly desktop interfaces that enhance user experience.
- Multithreading: Experience with multithreading and concurrency concepts to optimize desktop applications for performance and responsiveness.
- Deployment and Installation: Familiarity with desktop application deployment and installation processes for various operating systems, including packaging and distribution.
- Software Development Lifecycle (SDLC): Knowledge of SDLC methodologies, such as Agile or Scrum, to participate in software development processes effectively.
What does Access offer you?
We are a growing software company, and we deliver on what we say we do! We take the development of our people very seriously and we will work with you to carve out your success plan and an opportunity to accelerate your career and make a real difference.
On top of a competitive salary, our wellbeing days taking you to 25 days leave a year (rules apply) and a health contribution you’ll also be able to choose from a range of benefits to suit you. We pride ourselves on being an organisation that gives back so you’ll also have 3 charity days you can take to support something that matters to you.
At Access we’re all about helping everyone Love Work and Love Life. Why? Because we believe people can only be their best when they can be themselves. So, if you are excited about this role, but your past experience doesn’t match perfectly, we’d still love to hear from you. You might just be whom we are looking for.
We love the fact that we’re all different. We believe by having more diverse perspectives at work improves how we run our business, helps us to better support our customers, and when you think about it, it’s just more fun!
What’s holding you back? Come and be part of our Amazing Access Family!
Love Work. Love Life. Be You.