Nationalities - German & British
Years experience in software development
Languages English (Native Speaker) & German (Fluent)
Berlin, Germany
I would define software development as building great products for customers - therefore regular contact with stakeholders is essential. I believe in using the power of agile methods such as Scrum and Kanban to prioritise and deliver quickly minimum viable products for customers whilst maintaining the bigger picture through the product vision and product roadmaps. Through the use of clean architectures and codes we can build solutions that serve customers over many years.
I have experience planning, developing & maintaining monolithic, SOA (Service Orientated Architecture) & microservice architectures. The programming lanaguage(s) used should fit the stakeholder requirements and therefore I use a range of backend, frontend and App programming languages:
I have extensive knowledge of Java focusing particularly on the development of RESTful Web Services and Microservices using the Spring Framework (Spring Boot, Data etc.). Most of my applications I have built using Maven with the Git version control system with GitHub Actions as Continous Integration pipeline. I have used FishEye for code reviews and Jenkins for building Continuous Integration pipelines. I have also used Python for microservice development.
I have extensive knowledge of building frontend applications and web sites for both commercial and non-profit organisations. My favourite Frameworks for developing these applications are React and Angular. I have also used the LAMP Stack (Apache/MySQL/PHP). I also have knowledge in CSS and JavaScript and have used the NGINX web server as a proxy server.
I have considerable knowledge of building mobile applications using a single code base either with Cordova or React Native on both the Android and iOS platforms.
I have deployed my applications on both the AWS and Azure clouds. I use Visual Studio Code, Intellij IDEA and Eclipse as IDEs. I have experience of using both BPMN and UML as modelling tools. I have experience of using JIRA, YouTrack, Asana, Trello and Mantis for operative project management.
I think it is important to extend and update my knowledge on a continual basis. I attend seminars and online courses to meet this goal. Some of my recent courses are shown below and further certificates of seminars and training conferences that I have attended can be provided on request.
Hamburg, Germany
Topics included: foundations of software architectures, components/building blocks, interfaces, architectural goals, quality goals and tools.
The Robert Gordon University, Aberdeen, Scotland
Thesis title: Hybrid Algorithms for Distributed Constraint Satisfaction. In my doctoral research, I investigated and developed hybrid algorithms for Distributed Constraint Satisfaction, combining the convergence abilities of local search with the completeness of backtracking. This has led to the development of new algorithms for Distributed Constraint Satisfaction including PenDHyb, Multi-Hyb and Multi-HDCS.
The Robert Gordon University, Aberdeen, Scotland
This degree combined a standard Computing Science degree with several business modules such as Marketing, Accounting and Change Management particularly focused on an E-Commerce context.
I have given a number of technical talks over the years. Two of these are available online:
I have developed a substantial amount of freely available open source software. The software range contains human resources management software, a transport simulator game, statistical software and some scripts for DevOps operations. This software is licenced under the GNU General Public Licence.
HR Management Software
Information System
Transport Simulation Game
Statistical Software
Microservice for sending emails
Software Development
Constraint Satisfaction Problems are solved by algorithms assigning values (from a domain) to variables in the problem so that all constraints are satisfied. In Distributed Constraint Satisfaction Problems, variables are represented by agents who have only a partial understanding of the problem (their understanding is limited to the variables they represent and the constraints that those variables are involved in). Distributed problems are important when information cannot be shared either because there is too much information or because of privacy concerns. Existing algorithms for Distributed Constraint Satisfaction can be categorised as backtracking and local search algorithms. The former, whilst able to guarantee completeness, are often too slow for practical use whilst the later are often able to converge to a solution quicker but may not solve all problems (i.e. they are incomplete). In a summer scholarship in 2005 (supervised by Dr. Ines Arana & Dr. Hatem Ahriz), I compared the Distributed Breakout Algorithm with the Distributed Stochastic Algorithm on randomly-generated problems and scheduling problems. The tentative conclusions suggested that the Distributed Breakout Algorithm was more suited to randomly-generated problems whilst the Distributed Stochastic Algorithm performed better on scheduling problems. A prize was awarded for the research undertaken during this project. In addition to my research, I developed an experimental workbench written in Java to compare Distributed Constraint Satisfaction algorithms. In my doctoral research (supervised by Dr. Ines Arana, Dr. Hatem Ahriz & Dr. Kit-Ying Hui), I investigated and developed hybrid algorithms for Distributed Constraint Satisfaction, combining the convergence abilities of local search with the completeness of backtracking. This has led to the development of new algorithms for Distributed Constraint Satisfaction including PenDHyb, Multi-Hyb and Multi-HDCS. I also continued to develop the experimental workbench (SEICOSSA – A Smart Experimental Interface for Constraints) which I started to develop during my initial scholarship.
Before starting my doctoral projects, I was involved in the Information Retrieval research field. Together with Professor David J. Harper I sought answers to the question how effective is relevance profiling in retrieving relevant pages of a book as defined by the book’s own index? This project sought to measure this effectiveness through an investigation of a number of weighting functions on the within-document retrieval tool, ProfileSkim. Conclusions from the project were presented at the Ninth Australasian Document Computing Symposium.
LEE, D. and ARANA, I. and AHRIZ, H. and HUI, K. 2010. Multi-HDCS: Solving DisCSPs With Complex Local Problems Cooperatively. In: Proceedings of 2010 IEEE/WIC/ACM International Conference on Intelligent Agent Technology (IAT 2010). 1st-3rd September 2010. Toronto: Canada. pp. 295-302.
LEE, D. and ARANA, I. and AHRIZ, H. and HUI, K. 2009. A Hybrid Approach to Solving Coarse-grained DisCSPs. In: Proceedings of the Eighth International Conference on Autonomous Agents and Multi-Agent Systems (AAMAS 2009). 10th-15th May 2009. Budapest, Hungary. pp. 1235-1236.
LEE, D. and ARANA, I. and AHRIZ, H. and HUI, K. 2009. Multi-Hyb: A Hybrid Algorithm for Solving DisCSPs with Complex Local Problems. In: Proceedings of 2009 IEEE/WIC/ACM International Conference on Intelligent Agent Technology (IAT 2009). 15th-18th September 2009. Milan: Italy. pp. 379-382.
In: D. DOCHEV, M. PISTORE and P. TRAVERSO, ed. Artificial Intelligence: Methodology, Systems and Applications. 13th International Conference, AIMSA 2008 Varna, Bulgaria, September 4-6 2008 Proceedings. 4th-6th September 2008. Varna: Bulgaria. pp. 375-379.
HARPER, D. J. and LEE, D. 2004. On the Effectiveness of Relevance Profiling. In: P. BRUZA, A. MOFFAT and A. TURPIN, ed. Proceedings of the Ninth Australasian Document Computing Symposium. 13th December 2004. Melbourne: Australia. pp. 10-16.