Portland Webworks is a small company of overachieving consultants, focused on building web and mobile applications for a wide range of clients, particularly in the public sector. They are seeking a Full Stack Java/React Developer who will manage the application lifecycle, from requirements analysis to coding and documentation, ensuring high-quality deliverables and collaboration within a team.
Responsibilities:
- You have a keen grasp of the full application lifecycle, from breaking down requirements to writing testable code for the front-end and the back-end, to documenting the details so it’s easy to make updates in the future
- You are great at drawing the line between what happens on the front-end and what happens on the back-end to take advantage of the best aspects of each
- You can juggle performance, ease-of-implementation and ease-of-change because you have visibility of and vision for the full-stack
- You can analyse a set of business requirements, break them down into technical features and tasks and visualize how the different aspects of the system will come together through data structures, APIs and persisted entities
- You are as comfortable crafting a UI and creating the necessary APIs and server-side functionality to drive it as you are analyzing a set of external APIs and figuring out what kind of API patterns it will best support
- You know enough about all aspects of application development to make good decisions about architecture choices to allow team members who are more expert in each area apply their expertise efficiently
- You might not be a UX expert but you are aware of good javascript patterns, libraries and UI Kits to get things going from a visual perspective
- You might not be a database expert but you can define entity relationships that will make the necessary lookups performant
- You might not be an API expert but you know how to design REST interfaces and GraphQL schemas that will securely expose the right levels of detail needed by each type of user of the system
- You understand techniques for accessibility, performance, unit and integration testing, internationalization, software design patterns, refactoring techniques, and branching strategies
- You know the tools for creating modern web applications and cross-platform mobile applications
- You love taking (sometimes ambiguous!) client requirements and translating them into best-practice patterns
- You can help less experienced developers find the right ways of doing things, and you are just as happy churning out deliverables yourself
- You have great communication skills, good attention to detail and a strong sense of high-quality product
- High-quality to you means: well aligned to internal designs and to the client’s vision, a clean and reliable user experience, high levels of accessibility, consistency both within the current project and with industry best practices, highly testable and tested, reusable to enable increased efficiency in the future, maintainable both from a development perspective, and also from a client perspective
- Our projects are centered around our teams
- We do more than speak the Agile lingo, we strive for a truly agile culture
- A background of working with Scrum or Kanban is a plus but what’s really most important is having experience and willingness to work in a highly collaborative team setting
- An important part of our team focus involves being able to coordinate work with the rest of the team
- A valuable skill is being able to identify large blocks of functionality from requirements and design artifacts and break them down into suitable features and tasks
- As much as you have an eye for detail, you have an eye on the future
- Application development is constantly evolving so we’re looking for someone to bring some new skills and capabilities to our existing teams
- Whether you have an opinion on some of the emerging light-weight headless CMSs or have A/B testing experience to bring a more data driven approach to decision making we value the unique perspectives you can bring to our existing teams
Requirements:
- Strong grasp of the full application lifecycle
- Ability to break down requirements into technical features and tasks
- Experience crafting a UI and creating necessary APIs and server-side functionality
- Ability to analyze external APIs and determine suitable API patterns
- Knowledge of application development architecture choices
- Familiarity with good JavaScript patterns, libraries, and UI Kits
- Ability to define entity relationships for performance
- Experience designing REST interfaces and GraphQL schemas
- Understanding of accessibility techniques, performance, unit and integration testing
- Knowledge of software design patterns, refactoring techniques, and branching strategies
- Familiarity with tools for creating modern web applications and cross-platform mobile applications
- Experience with Java and Spring Boot on the back-end
- Experience with React and React Native for front-end
- Familiarity with GraphQL, NextJS, JPA, Liquibase, Tailwind, Ant Design, Material UI Kits, Typescript, Gradle, Sass, AWS, and Docker
- Ability to translate client requirements into best-practice patterns
- Ability to mentor less experienced developers
- Strong communication skills
- Attention to detail
- Strong sense of high-quality product
- Ability to work in a highly collaborative team setting
- Ability to coordinate work with the team
- Ability to identify large blocks of functionality and break them down into suitable features and tasks
- Willingness to bring new skills and capabilities to existing teams
- Experience working with Scrum or Kanban
- Experience with emerging light-weight headless CMSs
- A/B testing experience