Job Summary
TECHNOLOGY STACK
- Frontend (Customer) - React, using redux for state management.
- Frontend (Admin) - React, using sagas for state management.
- Frontend (Marketing) - React, using gatsbyjs for static site-building.
- Backend (Dashboard/Admin/ DMZ Layers) - .Net Core 2.2
- Backend Microservice (Services running through Kubernetes and docker management)
- Azure DevOps (Source control)
- CI / CD
- Pipeline management
- Azure cloud services
- Bugsnag (Front-End Real-time issue monitoring)
- Graylog (Back-End Real-time issue monitoring)
- Postman (API Documentation)
WHAT YOU WILL BE RESPONSIBLE FOR
- Help create an inspiring team environment with an open communication culture
- Take accountability for team targets
- Assist to hire junior and mid-level developers
- Encourage creativity and intelligent risk-taking
- Translate application storyboards and use cases into functional applications.
- Design, build and maintain efficient, reusable, and reliable C# code.
- Ensure the best possible performance, quality, and responsiveness of applications.
- Identify bottlenecks and bugs, and devise solutions to these problems.
- Help maintain code quality, organization, and automatization.
- Analyze system requirements and prioritize tasks
- Develop technical specifications and architecture
- Test and debug various .NET applications
- Review and refactor code
- Deploy fully functional applications
- Upgrade existing programs
- Support junior developers’ work
- Document development and operational procedures
REQUIREMENTS
- 5+ years experience as a back-end Software Developer,
- 2+ years experience as a front-end Software Developer,
- Prior experience in a technical position,
- College or University degree in Computer Science, a related discipline or proven experience in software development
- Proficient in C#, with a good knowledge of its ecosystems and best practices.
- Proficient with the .netcore (v2.2) frameworks.
- Strong understanding of object-oriented programming
- Proficiency in writing reusable C# libraries
- Proficiency in building web-based applications.
- Familiarity with agile environments
- Proficient Troubleshooting abilities
- Good communication skills
- Understanding fundamental design principles behind a scalable application.
- Good understanding of front-end development languages including ReactJs, HTML5, and CSS.
- Good understanding of server-side css pre-processing frameworks, such as LESS and SASS.
- Good understanding of modern frameworks - ReactJS, KnockoutJS, AngularJS
- Proficient understanding of version control tools. (Git, Mercurial, SVN)
- Experience building and integrating with RESTful API’s
- Experience working with common front-end tools such as Babel, Webpack, NPM and YARN.
- Experience with React development.
- Experience with source control management systems and continuous integration/deployment environments. GIT, Azure Pipelines
- Basic understanding of Common Language Runtime (CLR), its limitations, weaknesses, and workarounds
- Implementing automated testing platforms and unit tests
- Knowledge of concurrency patterns in C#.
- Familiarity with Microsoft SQL Server.
- Knack for writing clean, readable C# code.
- Creating database schemas that represent and support business processes.
- Experience with agile and scrum development methodologies.
- Experience with debugging, performance profiling and optimisation
- Strong initiative to find ways to improve solutions, systems, and processes
- Experience in various front-end architecture patterns
- Experience in implementing service workers
- Knowledge of modern authorization mechanisms, such as JSON Web Token
- Experience building PWA (Progressive web applications)
- Knowledge of isomorphic React
NICE TO HAVES
- Have a decent amount of financial/investment knowledge and associated database/process design
- Show interest in fintech, cryptocurrencies, blockchain and broader financial industries
- The ability to think and act strategically while also being hands-on
- A British or EU passport in addition to a South African passport
SKILLS, COMPETENCIES AND INTERESTS REQUIRED FOR THIS ROLE
- Flexible/ adaptable. You adjust quickly to changing priorities and conditions. You cope effectively with complexity and change. Able to work in a fast-paced environment with a focus on continuous improvement.
- You plan, organise, schedule, and budget in an efficient, productive manner. You focus on key priorities.
- A team player. You reach out to peers and cooperate with executives to establish an overall collaborative working relationship.
- Follow-through on commitments. You live up to verbal and written agreements, regardless of personal cost. You are action-oriented.
- Able to hire and develop A Players. You coach people in their current roles to improve performance and prepare them for future roles.
- A good communicator. You speak and write clearly and articulately without being overly verbose or talkative. You let others speak and seek to understand their viewpoints.
- Creative/ innovative. You generate new and innovative approaches to problems.
- You are able to convince others to pursue a course of action. You are a skilled facilitator and able to resolve conflicts when they occur.
- Ability to think and act strategically while also being hands-on
- Able to deliver on time with outstanding quality content
- Ambitious, dynamic and self-motivated
- Has good time management and organisation skills
- Accountable and strong-willed
- Ability to work in a small team (8-12 people) as well as work independently