About the job Intermediate Software Engineer
Job Title
Software Engineer
Location
Centurion, Gauteng
Reports To
Software Development Manager / Operations Manager
About Us
Namocorp is a leading-edge South African based Technology and Software company that develops bespoke software solutions. Namocorp was founded with a clear sense of Why that purpose, cause or belief that goes beyond the software we develop or the services we offer.
We do IT differently by disrupting, innovating, and revolutionizing!
We believe in doing everything differently, from how we engage and add values to our Customers, our People, right down to the way we interact with the Environment.
Why Work for us
We are a young close-nit team, offering an environment that promotes collaboration and innovation. We strive to offer the best working environment possible to keep our team happy.
Our Culture
We're casual and we operate with an open-door policy, if you want to talk with anyone on our team, you just go and do it. We focus on things like interesting work and solving challenging problems without having to deal with corporate hang-ups. And we do it all in slops, jeans, and t-shirts.
While we have an existing tech-stack to consider, you'll also be free to suggest any new tool or solution that you want to try out and just run with it, if you can justify it to your teammates.
Our Engineering Processes
We follow Agile development methodologies, so our clients experience increased productivity and ensure we deliver significant business value early in the development process. We are Agile enough to follow other methodologies as well as customizing a hybrid development methodology suited to our clients needs
Perks
Flexible hours
Amazing coffee
Free snacks
Casual dress code
Dev-spec Laptop
Centralised location (near to Gautrain station)
Job brief
We are looking for a passionate Software Engineer to design, develop, implement, and maintain software solutions.
Software Engineer responsibilities include gathering user requirements, defining system functionality, and writing code in various languages, like C#, and JavaScript amongst others. Our ideal candidates are familiar with the software development life cycle (SDLC) from the analysis phase right down to the maintenance phase.
Ultimately, the role of the Software Engineer is to build high-quality, innovative, and fully performing software that complies with coding standards and technical design.
Responsibilities
The responsibilities will include, but are not limited to:
- Execute full software development life cycle (SDLC)
- Design, develop, modify, implement, and support software components anywhere in the software stack.
- Develop flowcharts, layouts, and documentation to identify requirements and solutions
- Write well-designed, testable code
- Produce specifications and determine operational feasibility
- Integrate software components into a fully functional software system
- Develop software verification plans and quality assurance procedures
- Document and maintain software functionality
- Troubleshoot, debug, and upgrade existing systems
- Deploy programs and evaluate user feedback
- Comply with project plans and industry standards
- Ensure software is updated with latest features
- Work in close partnership with cross-functional teams.
Requirements and skills
- Bachelor's degree in Computer Science, Computer Engineering, or related degree in Software Engineering.
- 1 to 6 years professional work experience as a Software Engineer or Software Developer in designing, developing, maintaining, supporting, testing, implementing, and integrating software systems to scale using
- C#
- .Net and .Net Core
- Entity Framework / EF Core
- HTML, CSS, JavaScript
- ASP.Net
- SQL
- Web services (REST)
- Ability to document technical requirements and specifications
- Ability to learn new languages, research modern technologies and keep up to date with current practices.
- Ability to provide in-depth evaluation and analysis of unique complex technological issues.
- Ability to effectively articulate technical challenges and solutions.
- Deal well with ambiguous/undefined problems; ability to think abstractly
- Knowledge of professional software engineering and best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, continuous integration, continuous delivery, testing, and operations.
- Knowledge of common architectural design patterns.
- Understanding and Implementation of security and data protection (Preferable)
- Exposure to being part of an Agile development team and agile software development practices is required.
- Experience in development of distributed/scalable systems and high-volume transaction applications (Preferable).
- Experience working on large information systems (Preferable).
- Experience in developing desktop and web applications, server, and cloud-based technologies.
- Knowledge of multiple front-end languages and libraries (e.g., HTML/ CSS, JavaScript, XML, jQuery) (Preferable)
- Knowledge of multiple back-end languages (e.g., C#, Java, Python) and JavaScript frameworks (e.g., Angular, React, Node.js) (Preferable)
- Knowledge of multiple web services technologies (e.g., SOAP, REST) (Preferable).
- Knowledge of multiple relational database technologies (Preferable)
- Knowledge of NoSQL databases (Preferable).
- Experience with IIS Web servers or similar
- Proficiency with Git/Azure DevOps/TFS
- Exposure to Containerization technologies (e.g., Docker) and container orchestration technologies (e.g., Kubernetes) (Preferable).
- Knowledge of Automation testing tools (Preferable)
- Microsoft Azure experience (Preferable).
- Experience developing mobile applications using Hybrid frameworks (e.g., Xamarin, MAUI) (Preferable)
- Experience working with Microservice technologies (Preferable)
- Must be a South African citizen or Permanent Resident.
- Excellent analytical, logical reasoning and problem-solving skills.
- Excellent organization and time management skills.
- Excellent written and verbal communication skills.
- Passionate about Software Development & Technology
- Focused, dedicated, committed, taking ownership of deliverables, and taking initiative to getting the job done
- Function in stressful situations
- Team player and able to work in a team
- Ability to work unsupervised
- Strive for excellence
- Effective interpersonal skills