Tech Lead/master Programmer Resume
PROFILE:
- I am a dynamic and results focused IT professional with 10+ experience of OO scalable software design and development, 5+ IT system support and networking, backed by excellent qualifications.
- I am offering excellent technical knowledge on both System level (Unix, Windows, Networking, RDBM, NOSQL, Messaging), and Software development level (Multi - tier, multi-language, and multi-component stack, SOA, Highly Scalable Applications/Services).
- I pride myself for producing high quality high scale maintainable software.
- I am currently seeking a challenging role in the Software Development Industry offering opportunities for ongoing .
EMPLOYMENT:
Confidential
Tech Lead/Master Programmer
Responsibilities:
- Shaping the future technical stack of a new Affirmation Platform
- Helping complete the delivery of a greenfield project for the new affirmation platform
- Providing advise, coaching and guidance on best practices and solution architectures on areas like software design and implementation paradigms, modularity, Agile Coaching, Continuous Integration, programming paradigms, modelling techniques, and others.
- Advocating and promoting Agile Practices
Tools:
- Xquery/Marklogic and Java7/Java8/Spring with subversion, maven, jeknins and fitnesse.
- Spock/Junit/Mockito/JBehave (TDD/BDD)
- Intellij for IDE
- Linux/Redhat 6 for OS
- Agile/XP Development Process/SbE - Spec By Example
- XML/UML for modeling
- J2EE, J2SE
- Functional + OO Programming
- Jira for Issue Tracking
Confidential
Principal Software Engineer
Responsibilities:
- Shaping the future technical stack of a new Gaming Platform
- Help complete the delivery of a greenfield project for the new gaming platform
- Providing advise and guidance on best practices and solution architectures on areas like messaging technologies, software design, SOA, SEDA, EDA, and RESTful services.
- Advocating and promoting Agile Practices
Tools:
- Grails/Groovy/Spring for FrontEnd components (Gant as build + Git for VCS)
- Java/Spring/CXF for Services Layer (Gradle for build + Git for VCS)
- Java/Spring/CXF for external integration (Maven for build + SVN for VCS)
- DB2 for databases
- Cucumber/Spock/Junit/Mockito/Selenium for testing (TDD/BDD)
- Jenkins/Puppet for CI
- Intellij for IDE
- Linux/Centos 6 for OS
- Agile/XP Development Process
- XML/JSON
- J2EE, J2SE
- Functional + OO Programming
Confidential
Tech Lead/Senior Developer
Responsibilities:
- Leading a scrum team technically to deliver software for a social media product using agile techniques
- Providing advise and guidance on best practices and solution architectures on areas like messaging technologies, software design, SOA, SEDA, EDA, and RESTful services.
- Shaping and evangelizing towards a more Agile and Streamlined SDLC and development processes (Code Reviews, Pair Proramming, Scrum, XP, TDD, BDD)
Tools: J2EE, J2SE, Java2D, Restful Services, SOA, Spring, MultiThreading, RabbitMQ, Riak, MySql, XML/XSD, Maven, Intellij, Eclipse, Git, Subversion, Junit, Unix, Mockito, Jenkins, Sonar, artifactory, python
Confidential
Developer/Senior Developer
Responsibilities:
- Promoting best practices in software development, including TDD, BDD, Automation, Continuous Integration, Code Reviewing.
- Developing, maintaining, and supporting a set of complex middle office systems for trade processing within a team of 15+ members.
- I was involved heavily in every stage of development life cycle including gathering requirements and writing specifications to the final implementation, testing, deployment and project cutover stages.
- Customer Application support in an extremely busy and dynamic environment juggling two, three, and four projects at times.
- Reducing the load on the db (which was a bottleneck) by 25% using application-level caching (Ehcache specifically) in the initial pilot phase. More areas of the code will be using the caching technique piloted given its resounding success.
- Coming up with an idea to write scripts that allowed 50% less database access for EOD batch processing.
- Simply by reprocessing reports that are already produced, we can avoid hitting the db at all.
- Redesigning areas of the code where db was hit excessively and unnecessarily, for example by batch-fetching data, and reduce redundant db calls.
- Reconciliation Quality and Latency: a project that had both heavy SQL tuning and db trickery on top of a set of complex domain model massaging. The aim was to reduce the noise on the reconciliation and reduce the time it took to produce the rec report.
- SDLC Upheaval: I have been tasked to upgrade every knot and bolt in the SDLC adopted by the team I joined, and beyond.
- I converted many projects into maven with artifactory as repository for dependencies.
- I moved many projects from CruiseControl and Hudson/Jenkins into TeamCity as CI and CD platform.
- In addition, an in-house auto-deploy system was rolled out to be used. SVN was adopted strategically within the firm, and I migrated many systems from CVS to SVN. Also migration from SourceForge to JIRA.
- Crucible and Fisheye were used for reviewing code within the division, which were completely unavailable when I joined and I was involved in introducing it.
- I was an admin and region champion for all these SDLC technologies. Bash-scripts were used to automate processes like starting and stopping daemons, setting up test environments. In addition, I was a TDD strong advocate and a testing because of my passion about the subject.
- Finally, I was the only functional programming advocate and on the team. I managed to substantially affect colleagues coding styles by introducing them to this paradigm and how to use it appropriately.
Tools: /Technologies used included: J2EE, J2SE, Java2SE, MultiThreading, Spring, TIBCO RV, Sybase ASE/IQ, ehcache, vanilla jdbc, XML/XSD, Ant, Maven, Eclipse, Intellij, Netbeans, Subversion, CVS, JIRA, RMI, Junit, Unix, EasyMock, Mockito, TeamCity, Sonar, artifactory, bash scripting.
Confidential
Developer
Responsibilities:
- Developing the RI (Revenue and Integrity) software product within 6-members software team being involved in the full development lifecycle from gathering requirements and writing specifications to the final implementation, testing, deployment and project cutover stages.
- I have delivered a project aiming at replacing many jdbc layers with hibernate (as ORM)
- I have delivered multiple business intelligence subsystems within the extensible core framework of the software, including intelligent name recognition module where customer names were identified based on similarity in pronunciation and spelling and not only exact spelling matches.
- I introduced a set of powerful DSL constructs that allowed much smaller business intelligence code with less duplication and elevated maintainability. The new constructs allowed configurations that were impossible before to become common practice (decision-making via fuzzy logic and non-linear highly customizable rule-based decision making)
- I have spent weeks with customers for on using our software and gathering their requirements in preparation for integrating with their system (airlines reservation systems).
- Customer Application support in a busy and dynamic environment (JIRA, QC, Bespoke Feature Development on top of the core package).
Tools: /Technologies: Java2SE, J2EE, J2SE, MultiThreading, Spring, Oracle, XML/XSD, Ant, Antlr, Maven, Eclipse, Netbeans, Subversion, CVS, JIRA, RMI, AspectJ, Swing, Junit, PMD, Solaris, Hudson, EasyMock (TDD, BDD).
Confidential
Technical Support Analyst
Responsibilities:
- Programming, testing, and deploying web applications to increase the efficiency of the support team operations (Automation and management suites). e.g.: automatic Java Midlet Signing Web Application, Device Porting Pipeline Web Application, Media Libraries Provision Web Application.
- Maintaining and supporting systems, involved in the planning process and responsible for trouble shooting issues to ensure smooth and continuous system operation. E.g.: payment gateway trouble shooting, multimedia provision trouble shooting.
Tools: /Technologies: Java2SE, JavaScript, JUnit, Servlets/JSPs, CSS/XHTML, XML/XSLT/XSD, Netbeans, CVS, Oracle, Bugzilla, Swing, JMS, Tomcat5.5, Solaris.
Confidential
Lecturer /Lab Demonstrator/Supervisor
Responsibilities:
- Lecturing in OOP and Java
- Integral to the skills development of students covering subjects which include Java and Object - Orientated Programming, Web Applications (HTML, XHTML, CSS, PHP)
- Supervising students working in the computer labs, designing and running exercises and supporting students with aspects of study actively participating in problem solving with individuals and groups of students
- Issuing assignments, marking completed work and assessing progress
- Software design, analysis and development and implementation using Java and the exploration and identification of Web Services Issues
Tools: /Technologies: XML, WSDL, JAXP, JAXB, AspectJ, Jbuilder, J2SE.