Job Vacancy – Full Stack Software Engineer
Duma Works is recruiting a Full Stack Software Engineer for one of our clients in Nairobi; A FinTech company within a major commercial group in East Africa.
The ideal candidate is a critical thinker, is passionate about solving mathematical problems with data and gets excited about building high-performing, scalable, consumer applications.
The company believes in end-to-end ownership of projects. For any given project, we have one person on point. While they don’t necessarily have to do all the work themselves, it’s their job to make sure all the work gets done.
We launch betas and prototypes as early as we can as this helps ensure that we’re building what users actually want.
The company has sticky notes wall and release a few times a week. We keep the team in sync with daily stand-ups and have a retrospective once a month to discuss things that are going well and opportunities for improvements. Although we have strong opinions, we’re never afraid to try to new things to see if they work and reconsider our positions if
the situation warrants it.
About The Role
- Work with Product Managers to frame a problem, both mathematically and within the business context.
- Your first project involves working with other engineers on our backend applications. On a daily basis, you’ll work on documentation, new endpoints, performance optimization and, of course, test cases.
- Write production modeling code; collaborate with other Engineers to implement algorithms in production.
- You’ll be working with product people. Your leaders are technical and committed to creating a magical experience for customers. You’ll deploy excellent work that moves the needle for people and businesses around the world.
- We’ll surround you with people that love little details and bring out your best.
- Designing overall architecture of the product’s applications
- Design and implementation of data storage and schema
- Work closely with our product and design teams to customize the product experience
- Unit-testing code for robustness, including edge cases, usability, and general reliability
- Collaborate with the rest of the engineering team to design and launch new features
- Bug fixing and improving application performance
- Help drive the feature roadmap of the product.
- Prototype new and redesign features
- Maintain code quality, organization, and automatization
- Work on API design and implementation
- Automate tasks through appropriate tools and scripting
- Participate in the evolution of company level best practices, standards, and policies as it related to software development.
- Provide thought-leadership as it relates to emerging technologies and readying our company and engineers for productively integrating the same into the business
1. Server, Network, and Hosting Environment.
- This involves understanding what can break and why, taking no resource for granted.
- Appropriate use of the file system, cloud storage, network resources, and an understanding of data redundancy and availability are necessary.
- How does the application scale given the hardware constraints?
- What about multi-threading and race conditions? Guess what, you won’t see those on your development machine, but they can and do happen in the real world.
- Full stack developers can work side by side with DevOps. The system should provide useful error messages and logging capabilities. DevOps will see the messages before you will, so make them count.
2. Data Modeling
- If the data model is flawed, the business logic and higher layers start to need strange (ugly) code to compensate for corner cases the data model doesn’t cover.
- Full stack developers know how to create a reasonably normalized relational model, complete with foreign keys, indexes, views, lookup tables, etc.
- Full stack developers are familiar with the concept of non-relational data stores and understand where they shine over relational data stores.
3. Business Logic
- The heart of the value the application provides.
- Solid object oriented skills are needed here.
- Frameworks might be needed here as well.
4. API layer / Action Layer / MVC
- How the outside world operates against the business logic and data model.
- Frameworks at this level should be used heavily.
- Full stack developers have the ability to write clear, consistent, and simple to use interfaces. The heights to which some APIs are convoluted repel me.
5. User Interface
- Full stack developers: a) understand how to create a readable layout, or
b) acknowledge they need help from artists and graphic designers. Either way, implementing a good visual design is key.
- Can include mastery of HTML5 / CSS and use of the full Adobe Creative Tools
6. User Experience
- Full stack developers appreciate that users just want things to work.
- A good system doesn’t give its users carpal tunnel syndrome or sore eyes. A full stack developer can step back and look at a process that needs 8 clicks and 3 steps, and get it down to one click.
- Full stack developers write useful error messages. If something breaks, be apologetic about it. Sometimes programmers inadvertently write error messages that can make people feel stupid.
7. Understanding what the customer and the business need.
- Now we are blurring into the line of architect, but that is too much of hands off role.
- Full stack developers have a grasp of what is going on in the field when the customer uses the software. They also have a grasp of the business.
- You became an engineer because you like writing software that helps people.
- Should have a minimum of 3-4 years experience in a similar role.
- You have a history of working on PHP, Java and/or Python backend projects at scale and can bring a high level of expertise to the business.
- End-to-end experience with data, including querying, aggregation, analysis, and visualization.
- Your code is not only a pleasure for customers to use, but for other engineers to read and understand easily.
- A big part of being great at your job revolves around being very organized and communicative. It’s clear from your experience that you have those characteristics.
- Health cover
- Great tools – each engineer needs a Mac laptop and a killer internet connection, so we’ll get you what you need
- Professional development
Include in your application
- Links to any apps you’ve released in any App Store or libraries/projects you’ve
- Your favourite data stores and why you like it
- Links to online profiles you use (GitHub, Twitter, etc).
- A description of your work history (whether as a resume, LinkedIn profile, or
Send your Cover Letter and detailed CV to [email protected] marking the subject as “2961”, Your Full name & Phone number e.g. 2961 Barack Obama, +2547xxxxxxxx. If you don’t follow these instructions, your application will not go through.
Deadline for receiving applications:Friday, 13th October 2017
* You will receive a confirmation email and an alert to take a basic screening test over SMS or online. The email with the test may not arrive immediately. Please be patient. The email/SMS test will typically be 5-8 questions to help us understand your background. Regular SMS rates apply to the test.
If you apply and don’t meet these minimum qualifications, we won’t be able to forward your application to the employer.
Posted in Jobs Tags: africa, Agile software developer, business, commercial, company, corporate, customer, Data, delivery, Design, development, DUMA, DUMA Works, East Africa, financial, Full stack developer, Group, hardware, head, Head of product, head of software, industry, information, IT, Job Matching, Job Opening, Job Opportunity, job vacancy, jobs in nairobi, Leadership, Management, mobile, nairobi, operations, opportunities, Opportunity, processing, product, professional, project, project management, Recruiting, software, software engineering, Start Up, support, systems, technical, technology, vacancy, works