You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/index.md
+2-1
Original file line number
Diff line number
Diff line change
@@ -12,12 +12,13 @@ hide:
12
12
13
13
I've [worked](/resume) in the computer / internet industry for the last {{ now().year - 1999}} years, primarily as a backend software engineer for web applications.
14
14
15
-
For most of that time, I've either been the lead of a small developer team or provided technical leadership and engineering management roles.
15
+
For most of that time, I've either been the lead of small developer teams and/or provided technical leadership and engineering management roles as a Senior Developer.
16
16
17
17
*[Michael Joseph]: yes, two first names, I know. MJ works as an internet handle, for people _into_ the whole brevity thing and as a means of disambiguation amongst all the other Michaels.
Copy file name to clipboardExpand all lines: docs/resume.md
+94-45
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,27 @@ hide:
6
6
7
7
### Senior Software Developer / Team Lead
8
8
9
+
## Summary
10
+
11
+
Senior Software Developer with an emphasis on maintaining efficient development teams using open-source development methodologies.
12
+
13
+
Documentation culture, developer productivity tooling, continuous integration and deployment and automated security patches are amongst my weaponry and research interests.
14
+
9
15
## Experience
10
16
11
-
### Team Lead @ Maple Syrup Media / Quidco.com   <small>*2016 - 2021*</small>
17
+
### Team Lead @ Maple Syrup Media / [Quidco]{target=_blank}   <small>*2016 - 2021*</small>
18
+
19
+
- RST team member responsible for support and onboarding whitelabel and API integration customers.
20
+
21
+
- Team Lead various teams supporting the rollout of the microservices platform.
22
+
23
+
- Developed tooling to reduce variability and increase the efficiency of our deployment and microservice versioning processes.
12
24
13
-
I led one of the teams that maintain and enhance Quidco's backend services platform.
25
+
- Introduced [cookiecutter] templates for rapid rollout of new Laravel microservices.
@@ -24,83 +38,118 @@ I was part of the core team responsible for:
24
38
25
39
- supporting Ruby On Rails web application developers
26
40
27
-
### Systems Engineer; Services Team Lead @ Yola.com  <small>*2010 - 2014*</small>
41
+
### Systems Engineer; Services Team Lead @ [Yola]{target=_blank}  <small>*2010 - 2014*</small>
28
42
29
-
Built out the Python Services API layer as part of the distributed architecture
30
-
roadmap.
43
+
Built out the Python Services API layer as part of the distributed architecture roadmap.
31
44
32
-
Moved to a senior role with slightly more focus on architecture discussions and code reviews.
33
-
I also wrote Java and PHP when required.
45
+
Moved to a senior role with slightly more focus on architecture discussions and code reviews and assisted the PHP and Java practices supporting the SiteBuilder and published website components.
Java consultant to large financial and insurance businesses based in Johannesburg.
38
-
I reviewed and recommended changes to their JVM configuration to meet the
39
-
scaling needs of their internal applications.
50
+
I reviewed and recommended changes to their JVM configuration to meet the scaling needs of their internal applications.
51
+
52
+
I performed ad-hoc performance tuning as well as periodic performance reviews.
53
+
54
+
The periodic performance reviews occur in the context of a long-term performance improvement plan and comprise setting appropriate performance levels, continual improvement and monitoring of the application's performance in the load-testing environment as well as detailed application server and application analysis (garbage collection logging and subsequent garbage collection algorithm tuning, heap generation size calibration, database query analysis and improvement, application server pool size monitoring and tuning).
55
+
56
+
The ad-hoc review and performance tuning exercises involved debugging error conditions that occurred under high load conditions. The process followed consisted of hypothesising the cause of the exception in a load-balanced multi-tier environment (Tomcat web application, JBoss EJB application server cluster, database cluster and Mainframe integration), conducting appropriate experiments in a load-testing environment and recommending code changes and server software parameter tuning.
57
+
58
+
### Senior Software Developer; Open Source Business Unit Manager @ [AdaptIT]{target=_blank}   <small>*2007 - 2008*</small>
59
+
60
+
Technical Lead of the Open Source Business Unit software development team. We built and maintained the [eThekwini Municipality Internet] and Intranet sites.
40
61
41
-
### Senior Software Developer; Open Source Business Unit Manager @ AdaptIT   <small>*2007 - 2007*</small>
62
+
I was promoted to Open Source Business Unit Manger in 2008.
42
63
43
-
Technical Lead of the Open Source Business Unit software development team.
44
-
We built and maintained the intranet and internet sites for the eThekwini Municipality
64
+
#### Roles
45
65
46
-
Additional Roles:
66
+
- Technical leadership - troubleshooting issues, talking developers through possible implementation choices, improving technical skills through code reviews and dissemination of development best practices and procedures
47
67
48
-
-Technical leadership and mentoring
68
+
-Software Application Architecture and Design- constructing high level architecture representations of proposed systems, decomposing systems into Conceptual, Logical and Deployment views, development task generation and estimation
Software development team lead on PHP, C# and Python development projects.
57
79
58
80
#### Projects
59
81
60
-
- KnowledgeTree (http://www.ktdms.com)
61
-
62
-
Software Development Lead responsible for the design and management of KnowledgeTree, an open source document management system.
82
+
- Software Development Lead responsible for the design, management and initial implementation of [KnowledgeTree]{target=_blank}, an open source web-based document management system.
63
83
I was the release manager for the initial SourceForge releases.
64
84
65
-
- BrandDirector (http://www.branddirector.co.uk) implementation for Woolworths
85
+
- I led the Woolworths [BrandDirector]{target=_blank} implementation in C# (proprietary web application using a extensive in-house RAD framework).
86
+
87
+
- Lead developer for ongoing maintenance and development of the [eThekwini Municipality Internet]{target=_blank} and intranet portals. I managed and mentored the development team.
66
88
67
-
- eThekwini Municipality Internet and Intranet Portals (GNU/Linux/Python/Zope/Plone).
I was a senior member of the iTouch TAS, the internal research and development company providing services to the operational companies of the iTouch Group.
70
92
71
-
I was a senior member of the iTouch TAS, the internal research and development
72
-
company providing services to the operational companies of the iTouch Group,
73
-
We provided developer support services, localisable infrastructure applications
74
-
and platform level management services.
93
+
We provided developer support services, localisable infrastructure applications and platform level management services.
75
94
76
95
#### Projects
77
96
78
-
- FTP Interface for the Corporate Messaging Server
79
-
- iTouch SA CMS WebSMS Deployment
97
+
- Responsible for the design and implementation of an FTP Interface to the CMS.
- Deployment team member responsible for the installation, configuration, testing and modification of the CMS WebSMS application for [iTouch South Africa]{target=_blank}. Created generic builds (and contributed to installation documentation) for ease of installation into other iTouch operations.
82
100
83
-
As a senior member of the development team, I provided a bridge between
84
-
the **development** and network and hardware operations groups.
85
-
I also contributed to troubleshooting performance and deployment issues.
I became a senior member of the development team, providing a bridge between development and operations as well as contributing to troubleshooting performance and deployment issues.
105
+
106
+
My primary focus was the development of applications in PHP, Java and the custom IVR language `4Voice` to support iTouch Ireland's mobile content services.
107
+
108
+
I represented iTouch Ireland at a database modelling workshop where we were tasked with designing a unified database model for all iTouch operations.
I was responsible for the development and maintenance of one of the network performance management systems in operation at Vodacom. The system was used and supported on a national scale, and was implemented by an OLAP database - Seagate Holos v.7.
113
+
114
+
The system collected network performance statistics from the Vodacom mobile network infrastructure, parsed the data into formats compatible with Holos, and generated data cubes for presentation to the performance analyst user base.
115
+
116
+
During my time at Vodacom, the data sources were migrated from flat text files to an Oracle 8 database, and the performance cubes generated by querying the database.
117
+
118
+
As the sole developer, I also managed the development schedule and maintained associated user and technical documentation.
90
119
91
-
- Netstats
92
-
I developed and maintained one of the internal mobile network performance
93
-
management systems at Vodacom. We used RDBMS backends and OLAP data cubes.
120
+
### IT Specialist @ [Telkom]{target=_blank}   <small>*1999 - 1999*</small>
94
121
95
-
### IT Specialist @ Telkom   <small>*1999 - 1999*</small>
122
+
I was responsible for the development (in Visual Basic 6.0) and maintenance of a national Hotspot Centre fault logging and access network rehabilitation program, for the Access Network Maintenance Department (North Eastern Region).
96
123
97
-
I was responsible for the development and maintenance of a VB6 application
98
-
that managed circuit fault information in a MS Access database.
124
+
The application provided input screens for the capture of fault information, stored this information in a Microsoft Access database, and provided querying and reporting capabilities.
99
125
100
126
*[AWS]: Amazon Web Services.
101
127
*[API]: Application Programmer Interface
102
128
*[PHP]: PHP: Hypertext Preprocessor (née Personal Home Page)
0 commit comments