About us - What we do globally
FinTech is a fast-paced, rapidly growing, and engaging space. Jemstep is a market-leading FinTech provider of digital advice solutions to investment advisory firms including banks, broker dealers, and independent advisors. Our Advisor Pro solution enables firms and their advisors to connect with investors digitally, delivering investment advice to help them achieve their financial goals. We are helping banks and financial advisors transform their business, making it more efficient for firms to serve their clients and onboard new ones. While most “robo” advice solutions in market have been designed to replace advisors, our solution is designed to help advisors by extending their reach and enriching their clients’ experience. We firmly stand behind our platform’s flexibility, ease of integration and adoption, and value in delivering measurable results with a full suite of technology solutions.
In this position, you’ll be joining a high-growth company brimming with intelligent people, optimism, collaboration, and passion for progress, with ties to Invesco, a globally recognized and established asset management firm with a long history of success. Invesco has presence in over 25 countries and Jemstep has offices throughout the United States, South Africa, and India. As we further our mission and expand our presence and position, we’re seeking individuals of demonstrable success, with energetic, motivating personalities to join our team.
The Job Opportunity
Jemstep By Invesco development team is seeking a Senior Software Engineer – Full Stack to help them in their mission of delivering world-class technology solutions to investment advisors and their clients.
Note this position is for our Johannesburg development office located in Sandton.
About our Team
Our approach to work
We pride ourselves on being nimble, flexible, and cross functional while using innovative technologies. Our team in Joburg has over 35 excellent members with a variety of skills and experience and we’re seeking talented software and systems engineers to help us in our mission of delivering world-class technology solutions to investment advisors and their clients.
How we work
- We use a hybrid of Kanban, Scrum and Extreme Programming. We focus on delivering value to end users as efficiently as possible.
- Deployments are fully automated, driven by our DevOps culture. Deployments are typically done daily by our QA team.
- We drive continuous improvement (Kaizen): As a team we change our processes regularly, often as part of a retrospective outcome. We are not afraid to try and discard new ideas, as long as it makes us more efficient at delivering value.
Our cutting-edge Technologies
We mostly use Scala for development, with a strong focus on Functional Programming while still incorporating some aspects of Object-Oriented development.
- Concurrency Toolkit: Akka
- Web Framework: Play, React, Redux
- Source control: Git
- Database: MongoDB and Redis
Our team culture
We firmly believe that our team culture has been the reason for our historic success and will be the defining reason for meeting our future goals. We want to hire people who believe what we believe in and for this to happen a candidate needs to know their purpose and this should be aligned with ours.
Furthermore, we operate in a rapidly changing, dynamic and competitive environment, because of this and given our history we’re a little different from most tech companies. To work with us we demand the best of our team and candidates should be prepared to work within an exciting but hard-working culture:
- Environment and processes – Smaller, nimble and dynamic
- Flat structure – Freedom to interrogate and question method, tech and process
- Ambitious – both at an individual and team level while being 100% focused on meeting our goals and targets
- Attitude – Team members are driven, smart, ambitious and constantly encouraged to use their initiative to propel themselves, the team and business forward.
Job Specifications: Senior Software Engineer – Full Stack
Position Summary
Essential Responsibilities
- Implement and deliver features on the product roadmap to increase product adoption. This includes:
o Building a highly performant web application using Scala
o Communicating with various project stakeholders to clarify and contribute to feature requirements
- Deliver and maintain high quality software:
o Identify, troubleshoot and resolve software defects
o Follow agile software development practices. These include:
§ writing automated test suites to increase/maintain code coverage
§ performing code reviews
o Able to work independently or participate in collaborative programming sessions
- Contribute to building a highly effective team
o Encourage the sharing technical knowledge and the free-flow of ideas throughout the team to build cross-functionality and expertise
Marginal Responsibilities
- Continuous Improvement
o Provide constructive feedback to engineering members with the goal of improvement
o Activity contribute during retrospectives and stand-ups
- Risk Management
o Review, to the extent possible, how changes in code and the environment that will affect system performance, security, or quality
o Provide effort estimates for new features
- Support and Operations
o Assist quality engineers and support personnel as needed to identity defects
o Contribute to DevOps practices - including continuous deployment and infrastructure provisioning
Knowledge and Qualifications
Education and Experience - Required
- BSc in Computer Science or related field
- Minimum of 5 years hands-on experience within a software engineering environment
- 1-2 years in a senior engineering role preferred
- Ability to apply design patterns, data structures and algorithms
- Experience using open source languages, operating systems and tools
- Experience implementing agile software development practices
- Ability to code in Scala, Java, Erlang, or Haskell
Technical Skills - Required
- Ability to apply object oriented design, design patterns, data structures and algorithms
- Ability to quickly become proficient in Scala
- Knowledge of agile software development practices
Technical Skills - Desired
- Knowledge of modern web frameworks
- Ability to design and develop RESTful web services using a major JVM based web framework (e.g. Play, Dropwizard, Spray)
- Knowledge of asynchronous design patterns and code
- Knowledge of modular UI development and familiarity with major UI and JS frameworks (e.g. JQuery, Bootstrap, Backbone, Mustache)
- Experience with a NoSQL eg Mongo database
- Experience with EC2 or Openstack
Other Abilities - Required
- Able to communicate effectively in English
- Possess excellent verbal and written communication skills
- Honest, positive, approachable, self-aware, self-regulating, and self-motivating
- Demonstrates a strong interest in our craft