Software Development Manager2016 - PRESENTMiX Telematics
Technologies: C#, .NET, .NET Core, Kafka, SQS, SQL Server, MSMQ, Redis, Web API2, Swagger
- Led a team of eleven developers and four testers in an Agile development environment.
- Reviewed functional specs with BA, drew technical specs, and reviewed with the development team. Oversaw development and managed project delivery, giving regular feedback to stakeholders. Facilitated sprint ceremonies like stand-ups, sprint planning, sprint review, and more.
- Held regular meetings, under the guidance of the software architect and head of software development, with peers to ensure common technological direction within the company.
- Contributed to the hiring process.
Team Manager2014 - 2016MiX Telematics
Technologies: C#, MSMQ, Nancy, SQL, IIS, Entity Framework, SOA, Redis
- Led a team of extremely skilled senior developers and testers.
- Groomed new technical features to be implemented by the team.
- Managed projects, responsible for all aspects of my team's work, including work allocations/scheduling and making sure target dates are met.
- Worked closely with our H&O department, assisting them in infrastructure design and setup and making recommendations towards server specifications and more. I have become very familiar with the capabilities of the trade tools like Active Directory, Remote desktop tools like RD-Tabs, VMWare, Hyper-V, and AWS hosting services.
- Supervised eleven people and with the expectation that I still have to generate code; I had to very quickly learn how to effectively manage my time, so that I am never the bottleneck for any of my team members to do their work.
Senior Software Developer2012 - 2014MiX Telematics
Technologies: C#, MSMQ, Nancy, SQL, IIS, Entity Framework, SOA
- Went off-site with team members to rewrite an entire suite of client-facing applications into a single web interface, backed by a REST API.
- Assisted in the design and most of the development of the user management module of the new web-based platform.
- Led the introduction of Entity Framework as an ORM for selected modules within the new platform.
- Created various Windows services that process messages received via MSMQ. Messages are then either passed on to the next component within the SOA system or persisted into the target data store.
- Created an engine that renders a user interface based on rules in a SQL database. This was needed because this particular system is extremely dynamic and constantly evolves. Having to make code changes to support each new feature that is released is not an option. Hence, the rules for the new features are distilled into the database and all the surrounding components simply act on it.
Senior Software Developer2010 - 2012Tiple Point Technologies
Technologies: C#, SQl, WCF, IIS
- Led the company's move from Dephi to C#.
- Created an n-tier framework that uses Fluent-NHibernate as an ORM to be the backbone of all future development The framework's purpose was to be easy to develop against and to make sure that any third-party tools we used, like NHibernate, are properly abstracted and that no dependency to these tools bled into the business code.
- Led a team of developers across multiple time zones. (US, India, South Africa).
- Familiarized myself with the DevExpress WinForms tools to build rich desktop clients.
- Created REST services exposed via WCF for WinForms apps to connect to.
- Designed and implemented a caching framework so that data with different lifecycles could be cached seamlessly. The framework took care of cache creating, invalidation, and clean-up when the services are stopped.
- Approved technical specifications for business code/features drawn up by other developers before development started. Wrote technical specifications for framework code to be implemented by myself and a select group of developers.
Software Developer2007 - 2010Saflec Systems
Technologies: C#, VB6, SQL, TCP
- Rewrote a legacy application originally written in VB6 to C#.
- Created a Windows service that controls the "Goldfinger" metal detection system.
- Integrated various third-party biometric devices into our access control system.
- Gained firsthand experience dealing with clients and installing both hardware and software on-site.
- Created a data layer generator that would generate the data-access code for the existing system. This was chosen over an ORM like NHibernate because it generated code that could then be optimized by hand where needed.