Skip to content

Commit

Permalink
Resume update
Browse files Browse the repository at this point in the history
  • Loading branch information
michaeljoseph committed Oct 11, 2022
1 parent 337514e commit 3d78129
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 47 deletions.
3 changes: 2 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ hide:

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.

For most of that time, I've either been the lead of a small developer team or provided technical leadership and engineering management roles.
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.

*[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.

----
<br/>
<br/>

{{ skills_badges() }}

Expand Down
139 changes: 94 additions & 45 deletions docs/resume.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,27 @@ hide:

### Senior Software Developer / Team Lead

## Summary

Senior Software Developer with an emphasis on maintaining efficient development teams using open-source development methodologies.

Documentation culture, developer productivity tooling, continuous integration and deployment and automated security patches are amongst my weaponry and research interests.

## Experience

### Team Lead @ Maple Syrup Media / Quidco.com &emsp; <small>*2016 - 2021*</small>
### Team Lead @ Maple Syrup Media / [Quidco]{target=_blank} &emsp; <small>*2016 - 2021*</small>

- RST team member responsible for support and onboarding whitelabel and API integration customers.

- Team Lead various teams supporting the rollout of the microservices platform.

- Developed tooling to reduce variability and increase the efficiency of our deployment and microservice versioning processes.

I led one of the teams that maintain and enhance Quidco's backend services platform.
- Introduced [cookiecutter] templates for rapid rollout of new Laravel microservices.

### Senior Software Developer @ Intellection Software &emsp; <small>*2014 - 2016*</small>
- Introduced ADRs and RFCs for documenting our evolving technology best practices.

### Senior Software Developer @ [Intellection Software]{target=_blank} &emsp; <small>*2014 - 2016*</small>

I was part of the core team responsible for:

Expand All @@ -24,83 +38,118 @@ I was part of the core team responsible for:

- supporting Ruby On Rails web application developers

### Systems Engineer; Services Team Lead @ Yola.com &emsp; <small>*2010 - 2014*</small>
### Systems Engineer; Services Team Lead @ [Yola]{target=_blank} &emsp; <small>*2010 - 2014*</small>

Built out the Python Services API layer as part of the distributed architecture
roadmap.
Built out the Python Services API layer as part of the distributed architecture roadmap.

Moved to a senior role with slightly more focus on architecture discussions and code reviews.
I also wrote Java and PHP when required.
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.

### Senior Software Developer @ Sadalbari Open Software &emsp; <small>*2008 - 2010*</small>
### Senior Software Developer @ [Sadalbari Open Software]{target=_blank} &emsp; <small>*2008 - 2010*</small>

Java consultant to large financial and insurance businesses based in Johannesburg.
I reviewed and recommended changes to their JVM configuration to meet the
scaling needs of their internal applications.
I reviewed and recommended changes to their JVM configuration to meet the scaling needs of their internal applications.

I performed ad-hoc performance tuning as well as periodic performance reviews.

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).

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.

### Senior Software Developer; Open Source Business Unit Manager @ [AdaptIT]{target=_blank} &emsp; <small>*2007 - 2008*</small>

Technical Lead of the Open Source Business Unit software development team. We built and maintained the [eThekwini Municipality Internet] and Intranet sites.

### Senior Software Developer; Open Source Business Unit Manager @ AdaptIT &emsp; <small>*2007 - 2007*</small>
I was promoted to Open Source Business Unit Manger in 2008.

Technical Lead of the Open Source Business Unit software development team.
We built and maintained the intranet and internet sites for the eThekwini Municipality
#### Roles

Additional Roles:
- Technical leadership - troubleshooting issues, talking developers through possible implementation choices, improving technical skills through code reviews and dissemination of development best practices and procedures

- Technical leadership and mentoring
- 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

- Application Design and Documentation
- Business and Functional Analysis

- Work Breakdown, Allocation and Management
- Project management

### Senior Software Developer @ Jam Warehouse &emsp; <small>*2002 - 2007*</small>
- Technical documentation

### Senior Software Developer @ [Jam Warehouse]{target=_blank} &emsp; <small>*2002 - 2007*</small>

Software development team lead on PHP, C# and Python development projects.

#### Projects

- KnowledgeTree (http://www.ktdms.com)

Software Development Lead responsible for the design and management of KnowledgeTree, an open source document management system.
- Software Development Lead responsible for the design, management and initial implementation of [KnowledgeTree]{target=_blank}, an open source web-based document management system.
I was the release manager for the initial SourceForge releases.

- BrandDirector (http://www.branddirector.co.uk) implementation for Woolworths
- I led the Woolworths [BrandDirector]{target=_blank} implementation in C# (proprietary web application using a extensive in-house RAD framework).

- Lead developer for ongoing maintenance and development of the [eThekwini Municipality Internet]{target=_blank} and intranet portals. I managed and mentored the development team.

- eThekwini Municipality Internet and Intranet Portals (GNU/Linux/Python/Zope/Plone).
### Senior Developer @ [iTouch Labs]{target=_blank} &emsp; <small>*2002 - 2002*</small>

### Senior Developer @ iTouch Labs &emsp; <small>*2002 - 2002*</small>
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.

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,
We provided developer support services, localisable infrastructure applications
and platform level management services.
We provided developer support services, localisable infrastructure applications and platform level management services.

#### Projects

- FTP Interface for the Corporate Messaging Server
- iTouch SA CMS WebSMS Deployment
- Responsible for the design and implementation of an FTP Interface to the CMS.

### Software Developer @ iTouch Ireland &emsp; <small>*2000 - 2001*</small>
- 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.

As a senior member of the development team, I provided a bridge between
the **development** and network and hardware operations groups.
I also contributed to troubleshooting performance and deployment issues.
### Software Developer @ [iTouch Ireland]{target=_blank} &emsp; <small>*2000 - 2001*</small>

### Software Developer @ Vodacom &emsp; <small>*1999 - 2000*</small>

#### Projects
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.

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.

I represented iTouch Ireland at a database modelling workshop where we were tasked with designing a unified database model for all iTouch operations.

### Software Developer @ [Vodacom]{target=_blank} &emsp; <small>*1999 - 2000*</small>

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.

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.

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.

As the sole developer, I also managed the development schedule and maintained associated user and technical documentation.

- Netstats
I developed and maintained one of the internal mobile network performance
management systems at Vodacom. We used RDBMS backends and OLAP data cubes.
### IT Specialist @ [Telkom]{target=_blank} &emsp; <small>*1999 - 1999*</small>

### IT Specialist @ Telkom &emsp; <small>*1999 - 1999*</small>
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).

I was responsible for the development and maintenance of a VB6 application
that managed circuit fault information in a MS Access database.
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.

*[AWS]: Amazon Web Services.
*[API]: Application Programmer Interface
*[PHP]: PHP: Hypertext Preprocessor (née Personal Home Page)
*[GNU]: GNU's Not Unix
*[CMS]: Content Management System
*[CMS]: Corporate Messaging Server
*[RDBMS]: Relational Database Management System
*[OLAP]: OnLine Analytical Processing
*[OLAP]: OnLine Analytical Processing
*[RAD]: Rapid Application Development
*[TAS]: Technology And Services
*[FTP]: File Transfer Protocol
*[IVR]: Interactive Voice Response
*[RST]: Remote Services Team
*[ADR]: Architecture Decision Record
*[RFC]: Request For Comments

[cookiecutter]: https://github.com/cookiecutter/cookiecutter
[Quidco]: https://web.archive.org/web/20211008164014/https://www.quidco.com/
[Intellection Software]: https://web.archive.org/web/20160514073541/http://intellection.io/
[Yola]: https://web.archive.org/web/20141010091702/https://www.yola.com/
[Sadalbari Open Software]: https://web.archive.org/web/20110207214248/http://sadalbari.com/
[AdaptIT]: https://web.archive.org/web/20081020173659/http://www.adapt-it.co.za:80/
[Jam Warehouse]: https://web.archive.org/web/20071016072023/http://www.jamwarehouse.com:80/
[KnowledgeTree]: https://web.archive.org/web/20050724002627/http://www.ktdms.com:80/
[eThekwini Municipality Internet]: https://web.archive.org/web/19960329080010/http://www.durban.gov.za:80/
[BrandDirector]: https://web.archive.org/web/20060224231306/http://www.branddirector.co.uk:80/
[iTouch South Africa]: https://web.archive.org/web/20021013060259/http://www.itouch.co.za:80/
[iTouch Labs]: https://web.archive.org/web/20020929142302/http://www.itouchplc.com:80/
[iTouch Ireland]: https://web.archive.org/web/20010926181743/http://www.itouch.ie:80/
[Vodacom]: https://web.archive.org/web/20001010181131/http://www.vodacom.co.za:80/
[Telkom]: https://web.archive.org/web/19991001133942/http://www.telkom.co.za:80/
1 change: 1 addition & 0 deletions docs/talks.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ hide:

<iframe src="https://archive.org/embed/pyconza2014-cookie-monster" width="640" height="480" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe>

[Yola]: https://web.archive.org/web/20141010091702/https://www.yola.com/
[🎥📼 PyconZA 2013]: https://2013.za.pycon.org/talks/28
[🛝 Application to Platform: How we used Python to scale Yola]: http://michaeljoseph.github.io/application-to-platform/application-to-platform

Expand Down
2 changes: 1 addition & 1 deletion resume.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ basics:
url: https://www.linkedin.com/in/michaeljoseph/
work:
- company: Quidco.com
endDate: '$(gdate -d "1 month")'
endDate: '2021'
highlights: []
id: quidco
linkedIn: quidco
Expand Down

0 comments on commit 3d78129

Please sign in to comment.