Senior Software Engineer

Website kopeai KOPE

KOPE is the first purpose-built software platform for offsite.

About Us

matterlab is a product and innovation lab of technology experts, software developers and designers dedicated to improving the built environment.

We’re a company that bridge the gap between the worlds of computer programming and traditional architecture, engineering and construction (AEC) practices. We build our own cloud, web & generative design apps, as well as helping partners build their own solutions.

We partner with some of the biggest companies in the AEC industry, helping them to spearhead new technologies and find better ways of working.

The role

We’re looking for a motivated Senior Software Engineer to join our growing consultancy team.

We’re building innovative new products for our clients and we’re looking for the right person to help us. This role will see you joining a talented team, with ample opportunity for impact, reporting directly to consulting directors. On the technical side, you’ll be working with modern tech stacks and paradigms from microservices to single-page web apps, all in an automated CI/CD environment. We operate our own services, so you’ll also have the opportunity to get involved with DevOps as much or as little as you’re comfortable.

This senior software engineer role involves two main areas of focus and responsibility: development and solution architecture. On the development side, the role involves either back-end or full-stack development to reflect the fact that engineering of back-end cloud services will be crucial for this role, but also that knowledge of modern front-end development is appreciated and there is ample opportunity to contribute to both.

The role would see you take lead on designing scalable and resilient solution architectures for cloud services, features or entire products for our clients, and also drive quality, engineering best practices and mentoring in our consulting team, alongside our Engineering Manager and CTO.

Understanding of digital working processes within the AEC sector would be advantageous, with proven experience in project implementation, to support computational design initiatives. Your typical day-to-day will involve engaging with key internal/external project stakeholders to outline solutions and lead technical delivery in collaboration with our existing team. The candidate must be a strong allrounder that understands the complexity of delivery and has the capability to adapt, innovate and drive transformation.

We encourage transparency, autonomy and innovation so we’re looking for someone that would appreciate the open & collaborative environment.

Required skills & experience

For this role, you are required to demonstrate experience & skills in the following:

General development experience

development in a source-controlled environment (Git) with modern DevOps practices
experience writing testable, SOLID code and knowledge/use of design patterns
knowledge of unit and functional testing frameworks (NUnit, Jest etc)
experience working using an Agile approach & methodologies such as Scrum, Kanban, XP
an appreciation of good User Interface (UI) & User Experience (UX) design
experience working with OAuth 2.0 APIs

Solution architecture skills

experience designing scalable and resilient system architectures
experience designing cloud-native systems
experience designing systems with microservices or event-driven architectures
experience designing systems that leverage Azure cloud services

Back-end technology skills

extensive C# knowledge with strong OOP backbone
extensive ASP .NET Core experience
experience building APIs in a microservices or event-driven architecture
experience building in a serverless environment such as Azure Functions
experience building services with cloud-hosted NoSQL (Cosmos, Mongo) or SQL databases

Front-end Technologies (if applicable)

knowledge of CSS & HTML
demonstrable skills & experience in modern JavaScript (ES6+) or TypeScript
experience with a front-end framework (prefer VueJS but Angular/React are also cool)

DevOps

experience operating production systems in Azure (or AWS) environment
experience making build and release pipelines (Azure DevOps or similar)

Key skills

excellent verbal & written communication skills
able to mentor and help fellow team members grow
strong attention to detail
initiative & proactive working methodology
highly adaptable and keen to develop your skills in a collaborative & engaging environment
ability to translate business requirements into technical requirements & solutions

Desired skills & experience

We don’t expect any one person to be experienced in everything, so let us know which (if any) of the below nice-to-have skills you might have:

General

experience working with 3D Graphics and CAD
knowledge or interest pertaining to Architecture, Engineering, Construction industries

Solution architecture

experience with workflow engines or distributed workload/serverless orchestration systems such as Azure Durable Functions

Back-end technologies

experience with best practices for secure cloud services
experience with Azure messaging systems (EventGrid, ServiceBus, SignalR) or similar from AWS
experience operating services in production and use of application monitoring systems such as Azure Application Insights
experience with AEC applications APIs (Autodesk Revit & AutoCAD, Rhino, etc)

Front-end technologies

knowledge of CSS pre-processors (LESS/SASS) & frameworks (Bulma, Bootstrap)
experience with bundlers (e.g. webpack)
experience building progressive web apps

Qualifications

Mid/Senior-level experience in software development
Bachelor/Masters Degree in Computer Science, CS Engineering, or related fields

Role Responsibilities

Product & development responsibilities

Contribute to the conception and design of system architectures for our client products and projects
Contribute to the implementation, testing, and deployment of our client products and projects
Take ownership of features etc and build applications & APIs according to specifications
Write code using core engineering principles & industry best practices to ensure quality, usability and performance
Define and build test suites, perform analysis to identify opportunities for improvement & automation and build them
Closely collaborate with our team of developers and domain experts to build the best products possible
Participate in our agile development process, including sprint planning workshops & demos, code reviews and quality assurance activities
Help ensure our product’s success by participating in workshops and discussions
Help drive our inner-source practices

Office responsibilities

Our great working environment and relatively small team means there’s plenty of opportunities to help shape our office & development culture.
Contribute to the continuous improvement of everyone’s skillsets, whether it’s through best practice guides, presentations or hackathons
Contribute to our culture & love of open-source software

To apply for this job email your details to allisterplewis@gmail.com