Phillip Krüger
Systems Architect, Software Developer
- Email: phillip.kruger@phillip-kruger.com
- Web: www.phillip-kruger.com
- Mobile: +27 83 390 6895
Personal profile
I am an accomplished software developer and architect with experience in creating systems in various industries, ranging from banking, insurance, rewards programs, retail and mobile. I have extensive experience in full stack development, and prefer to be active in all parts of the SDLC, from conceptualising to running in production. I have a passion for clean code and evolutionary architecture. I love Java, Linux and open source.
Professional experience
Principal Software Engineer at Red Hat
January 2019 to current
Red Hat is a multinational software company providing open-source software products to the enterprise community.
I am a Principal Software Engineer in the middleware business, focusing on MicroProfile, SmallRye and Quarkus. I am also an Eclipse MicroProfile committer, and part of the MicroProfile GraphQL workgroup where I help with the creation of the API, specification and TCK.
My responsibilities include looking after SmallRye GraphQL, an open-source implementation of MicroProfile GraphQL, that I am also contributing to. I also look after SmallRye OpenAPI, an open-source implementation of MicroProfile OpenAPI, and more recently I got involved with Reactive Messaging and I am working on a proof of concept implementation of AsyncAPI.
More about my work at Red Hat
Responsibilities
I am part of the MicroProfile workgroup, where I am a committer and mostly work on MicroProfile GraphQL. I started the MicroProfile GraphQL specification while still working at Multiply and soon IBM and others got involved. When I moved to Red Hat I could spend more time on the specification.
I also designed and implemented the open-source implementation called SmallRye GraphQL. I am part of the SmallRye and Quarkus teams in Red Hat, and mostly write code and design open source systems.
I started MicroProfile Extensions, a set of open source extensions for MicroProfile. These extensions are being migrated to SmallRye.
Because everything we do at Red Hat is open source, my work is visible on GitHub:
Technologies used
- Java
- Java EE
- MicroProfile
- Linux
- Quarkus
- WildFly
Blog posts
I write blogs about my work at Red Hat:
- Experimental GraphQL
- MicroProfile OpenAPI for everyone
- Supersonic Subatomic GraphQL
- MicroProfile GraphQL 1.0 released
Conference talks
- 1 August 2020: Building queryable APIs with MicroProfile GraphQL at Global Summit for Java devs '20
- 29 June 2020: Wonders of GraphQL at Quarkus Insights
- 27 April 2020: Building queryable APIs with MicroProfile GraphQL at JoziJUG
- 21 April 2020: Building queryable APIs with MicroProfile GraphQL at SouJava
- 25 January 2020: Writing better APIs with MicroProfile GraphQL at DevConf.CZ in Brno, Czech Republic
- 28 November 2019: Quarkus on OpenShift and Azure Functions at Microsoft Open Cloud Summit in Johannesburg, South Africa
- 16 September 2019: Jakarta EE, a quick overview at Oracle Code One in San Francisco, USA
- 25 July 2019: Writing better APIs with MicroProfile GraphQL at the Java Cloud Conference in Johannesburg, South Africa
- 24 July 2019: Implementing Microservices with Eclipse MicroProfile (workshop) at the Java Cloud Conference in Johannesburg, South Africa
- 26 March 2019: Modern application services with OpenShift at DevConf in Cape Town, South Africa
Conferences attended
- DevConf.CZ 2020, Brno, Czech Republic
- Oracle Code One 2019, San Francisco, USA
- Java Cloud Conference 2019, Johannesburg, South Africa
- DevConf ZA 2019, Johannesburg and Cape Town, South Africa
Jozi JUG
I am one of the organisers of the JoziJUG.
Systems Architect at MMI Holdings, Multiply
January 2015 to December 2018
Multiply is a wellness and rewards program that encourages clients to live healthier and reach their financial goals.
I was the Systems Architect, responsible for the overall architecture of the systems and the technical implementation and quality of the systems and teams. I have a hands-on approach and believe in clean code principles and evolutionary architecture.
Our systems ranged from AS400, Java SE and EE and JavaScript, and we did a lot of integration to and from partners and other product houses in MMI.
More about my work at Multiply
Responsibilities
- Defined and implemented the architecture and roadmap for all systems
- Helped break up the teams into smaller squads
- Helped move from waterfall to an agile way of work
- Moved from monolith to microservices
- Helped with the abstraction of systems to better define reusable products
- Represented Multiply on the MMI architecture forums
Technologies used
- Java EE
- MicroProfile
- Linux
- IBM WebSphere (including Liberty)
- Thorntail
- Payara
- Elasticsearch
- IBM DB2
- Apache Maven
Blog posts
I wrote a few blog posts that got published:
- When using JAXB
- A configurable JAX-RS ExceptionMapper with MicroProfile Config
- Your own MicroProfile Config source
- GraphQL on Wildfly swarm
- Hollowjars, Deployment scanner and why Wildfly swarm is cool
- Fatjars, Thinwars and why OpenLiberty is cool
- Some factory examples
- Continuous integration to Maven Central
- Apiee: an easy way to get Swagger on Java EE
- WebSockets example and the birth of Stompee
- Your own Swagger UI on Liberty
- Monkey methodology
Conference talks
- 12 July 2018: Keynote: Distributed services with MicroProfile at the Java Cloud Conference in Johannesburg, South Africa
- 16 May 2018: Writing better APIs with GraphQL at the Developer User Group in Pretoria, South Africa
Conferences attended
- JCon 2018, Düsseldorf, Germany
- Java Cloud Conference 2018, Johannesburg, South Africa
- DevConf ZA 2018, Johannesburg, South Africa
- JavaOne 2017, San Francisco, USA
- SingularityU 2017, Midrand, South Africa
- IBM Interconnect 2016, Las Vegas, USA
- JavaOne 2015, San Francisco, USA
Software consultant at Standard Bank
July 2014 to January 2015
As a software consultant I assisted with performance tuning of services used by the mobile app. I also assisted with the automation of infrastructure deployment and configuration.
IT Director, Enterprise Architect and Software Developer at Thumbtribe Mobile Solutions
June 2008 to July 2014
Thumbtribe is a small company that brought mobile solutions to feature phones, smartphones and the web. We built a platform that can deliver content on feature phones, smartphones, websites and apps via USSD, WAP, HTML and REST services.
I was running everything IT related, from the teams and the infrastructure to the software. Thumbtribe developed a platform that allows publishers and agencies to build campaign sites that render perfectly on websites, but more importantly on all 5000+ mobile devices still active in Africa. Africa has unique challenges because of slow, expensive and unreliable internet, and old handsets that are in many cases the only connection the consumer has to the internet.
More about my work at Thumbtribe
IT Director
- Represented all IT related functions on the board.
Enterprise Architect, Team Lead
- Responsible for conducting, leading and coordinating software development activities throughout the project, including key design decisions for the technology, structure and configuration of the system.
- Involved with the product definition of the cloud platform.
- Monitored team performance and activity.
- Served clients, identified their needs and provided a solution.
- Performance review and management of development of the team members.
- Enforced best practice and environment standards.
Technical Lead, Software Developer
- Product definition, design and development of Thumbprint, a custom platform that allows building of mobile sites.
- Cloud platform that allows anyone with an internet capable device to build sites (mobile or web) without actually having to code.
- Hosting of the sites is also taken care of with the cloud service.
- The platform has numerous widgets you can use to build your site.
- The platform ensures that the mobi site you built will work on 6500+ devices (everything from a Motorola V3 to an iPhone).
Technologies used
- Ant and Ivy
- Eclipse
- Linux
- Java (JEE, JSE)
- GlassFish
- MySQL
- OpenRDF
- Lucene Search
- Ehcache
- Apache Pluto
- Spring Web
- Apache Velocity
- Netbiscuits (BiscuitML)
- jQuery
- Foundation
Blog posts
I wrote a blog post about responsive design in Africa that got published on memeburn.com.
Durban JUG
I ran the Durban JUG and hosted several community meetings.
Conferences attended
- Mobile World Congress 2011, Barcelona, Spain
- JavaOne 2011, San Francisco, USA
Enterprise Architect at Adapt IT
August 2006 to May 2008
I was responsible for defining and implementing a new Java EE architecture for a custom financial system that was running in Oracle Forms. This included the migration strategy and the re-skilling of the developers.
More about my work at Adapt IT
Responsibilities
- Defining and implementing a new architecture for Tranquillity (a financial system for the sugar industry) as well as strategies to achieve these goals:
- Tranquillity architecture
- Tranquillity fuel transaction integration
- Tranquillity online documents approval
- Also responsible for up-skilling the developers to use Java.
Technologies used
- Java
- J2EE
- JEE
- SOA
- UML
- SOAP web services
- XML
- XSL
- XSD
- FTP
- JUnit
- JSF
- Linux
- MySQL
- XWiki
Conferences attended
- Oracle Open World 2007, San Francisco, USA
Software Developer, Technical Team Lead and Architect at Dariel Solutions
May 2005 to July 2006
I was consulting at Discovery Life, running the development team, responsible for architecture, design and implementation of new systems.
Software audits: I was responsible for a two week audit of the South African Post Office leave application system.
More about my work at Dariel Solutions
Responsibilities
Discovery Life (contract work through Dariel Solutions): design and development of the following systems.
- Domain and policy administration system
- Discovery Life integration layer to the Discovery World systems
- Discovery Life retirement optimiser system
- Discovery Life claims system
South African Post Office (contract work through Dariel Solutions): software audit of their leave application system.
Technologies used
- Java (J2EE)
- Oracle
- BEA WebLogic
- Eclipse IDE
- XML
- XSL
- Apache FOP
- JAXB
- UML
- SAX
- FTP (Apache Commons Net)
- Flux (batch scheduler)
- Oracle Workflow
- Ant
- Extreme Programming
Java Developer at Standard Bank (Standard Corporate and Merchant Bank)
February 2001 to April 2005
The CIO of Standard Bank attended our third year project day at university. After seeing my project, he offered me a job. I was part of many teams in the bank, doing Java and Java EE development. I continued my studies part time.
More about my work at Standard Bank
Responsibilities
- Developed a client program to assist international banking clients with online banking.
- Developed a web-based inquiry system providing real-time balances, statements and so on for ZAR accounts held by global institutions.
- Designed and developed the sweeping facility, an internal program that Standard Bank uses to move all money from one account to another for a predefined balance at certain times.
- Designed and developed a new electronic software distribution in Java, replacing the old CORBA based one.
- Redefined and rebuilt the build process for J2EE projects and Swing clients.
- Designed and developed a card payment solution, a system that assists with settlement between buyer and supplier and integrates with the ERP system of the buyer.
Technologies used
- J2SDK
- Java Swing
- Java Applets
- CORBA
- RMI
- JSP and Servlets
- SOAP (JAX-RPC)
- JAXP
- JAXB
- JAAS
- EJB
- XDoclet
- XML
- XSL/T
- JBuilder
- Solaris
- Linux
- BEA WebLogic J2EE Server
- JBoss
- Tomcat
- HTTP/S
- Apache Web Server
- Apache Ant
- PVCS
- SAP
- Business Connector
- MySQL
- Oracle
Education
University of Johannesburg: B.Sc (Hons) Computer Science
2001 to 2003
Honours degree in Computer Science, focusing on security, web programming, robotics and AI.
Subjects
- Information Security
- Information Security in WWW
- Artificial Intelligence
- IT Project Management
- WWW Programming
- Ethical, Audit and Legal aspects of IT
- Information security systems
- Practical Project
University of Johannesburg: B.Sc Information Technology
1998 to 2000
Major in Computer Science and Informatics.
Subjects
- Computer Science 1, 2 and 3
- Informatics 2 and 3
- Mathematics Analysis 2
- Mathematics Algebra 2
- Mathematics Statistics 1
- Mathematics 1
- Economics 1
- Accounting 1
Solms Training
2000 to 2006
Programming in Java, Advanced Java, XML, Object-Oriented Analysis and Design using UML, Enterprise Java Beans, Patterns, Architecture.
Core competencies
Technical
- Software development
- System design
- System architecture
- Enterprise architecture
Business
- Business design
- Business architecture
- Research and analysis
- Process improvements
People
- Technical writing
- Technical presentation
- Communication
- Team leadership