LEXIA

Summary

Due to the huge and continuously increasing amount of unstructured information, i.e. text, the analysis of legal literature has become a complex and time consuming task. Texts may refer to and are referred by other texts which can lead to complex dependencies. For example, a condition specified in a text maybe excepted in another one. This is where LEXIA comes in: It is a web application that can import legal texts like laws or judgements, for instance, and provides means to analyse, enrich, and annotate them with structured information. For this, it uses Natural Language Processing (NLP) components. Furthermore, it provides a rule engine so that users can upload custom scripts using a formal language to describe patterns that shall be detected.

Why did I love this project?

While this is the doctorate project of my advisor, I started my Master's Thesis contributing to this project right in the beginning. Thus, it was a greenfield project which offered me all the freedom you have when developing completely from scratch.
When I finished my thesis, the prototype had already embedded diverse NLP components for the analysis of grammatical information about the analysed text. Furthermore, I've developed some domain-specific components which detected exceptions within laws, for example. Also the rule engine for custom analysis scripts was working like a charm. It had a sustainable architecture that can easily be extended by further components and annotation types. Meanwhile, there has been spent lots of further development efforts on this project, which is just great as it proves the worth and sustainability of my work!

What were the main technologies?

Back End

The back end has been implemented in Java using the Play! framework. For combining individual components into analysis pipelines, I have utilised the UIMA framework. The already existing NLP components, that I have embedded, came from the DKPro Core project.
For the persistency MongoDB was used until we moved on to another system that has been developed by the chair and should be evaluated with several projects including LEXIA.

Front End

The most important technologies for the front end include AngularJS, Twitter Bootstrap, Semantic UI, and jQuery.

Project Management and Collaboration

The version control system was Mercurial and the code was hosted on Bitbucket. Also the issue tracker of Bitbucket was used for prioritisation of tasks and bug reporting.

What was my role?

In the beginning I retrieved and analysed the basic requirements for such a software. Based on their evaluation I have designed the architecture of the application. Afterwards, I started coding and implemented the features described above incorporating the designed architecture. While I was involved in the full stack of the application, my focus was on the back end though. For this project I was in a team of two plus my advisor. The other student was mainly responsible for importing the legal literature from various data formats.

Links & Screenshots

My Master's Thesis
Presentation of the results
Website of the chair describing my thesis
Website of the parent project


NTT Reports

Summary

NTT Data is a large consulting company advising many different customers. While they use an agile process to work with their customers, they still offer fixed price contracts for the corresponding projects. This leads to the risk of losing track of spent resources and the progress of the project. To address this issue, they provided a student project and asked particularly for ways of visualising and aggregating the information of two worlds: The agile world with many change requests and the static world of fixed price contracts. For this, an iOS app should be developed which visualises all this information on a screen as small as an iPhone display and notifies the project manager if there comes in a change request which exceeds the budget. Therefore, the app is a useful tool when negotiating change requests with the customer as it shows the changes' impacts in an intuitive way.

Why did I love this project?

It was another student project for which a real demand existed and it's very important for me to see the value of my work. What I also liked very much is the involvement in all stages of the software development life cycle - from refining the requirements to the releases. Also, I have never coded in Swift before and it was a nice possibility to get into a new technology.

What were the main technologies?

Back End

The back end was responsible for retrieving the project data from the customers' JIRA and the contract data from the iOS app and provided / consumed it via a simple REST API. It was implemented with Node.js. While the project data was already persistent in the customers' JIRA, the contract data, i.e. budgets, etc., was stored in a MongoDB.

Front End

The client side was implemented in Swift and a little bit JavaScript (three.js) for an enhanced user experience.

Project Management and Collaboration

The version control system was git. We used the Atlassian suite. I.e. the code was hosted on a Bitbucket server, issue tracking and sprint planning took place in JIRA, and knowledge was shared via Confluence. For continuous integration, deploying, and releasing the code we used Bamboo.

What was my role?

I was especially focused on developing the business logic which included development on the client side as well as on the server side. I have established and implemented a data model that served as a gateway between the UI and the back end. Therefore, it can be said that I have mainly worked on the model and the controller part according to the MVC pattern. Furthermore, I did several code reviews and supported less experienced developers in my team. We were a team of six students.

Links & Screenshots

Livestream of the presentation (this project starts at 02:39:40)
Presentation slides
Trailer advertising the app


Interhyp

Summary

Interhyp is the market-leading broker for home loans in Germany. The self-developed web application calculates the best offers from hundreds of banks for customers based on their individual data. Furthermore, they offer a customised version of the application for B2B customers, i.e. independent brokers who use the software to have access to the conditions of all these banks and thus, can provide their customers an excellent service. While this calculation is a great thing, it's even better that brokers can hand in all the required documents to the banks who in turn can directly accept the bid. Thus, the whole process is covered by the system which leads to an enormous reduction of bureaucracy and processing time.

Why did I love this project?

I'm generally interested in the Fintech area and I like business models that are supported by or - even better - based on software. Hence, this was the perfect job for gaining software development experiences in a commercial environment during my studies. Due to the fast growth of the company there have always been interesting and challenging tasks where I could apply and extend my knowledge achieved in university. As I have worked in the same company for the Quality & Release Management department before, I already had developed a good understanding of the customer side. Thus, I knew how to read the development requests and how to translate them into code that did what the customer expected.

What were the main technologies?

As this is a commercial one, I can't reveal too much about the code and the used technologies. However, what I can say is that the back end is implemented in Java and the front end uses JavaScript.

What was my role?

In a team of 30+ developers located in two different cities I was mainly working on the back end. I have implemented change requests and small-scale projects. Furthermore, my responsibilities included providing technical advice and cost estimations to internal customers as well as bugfixing. Soon I also did code reviews and supported new colleagues.

Links & Screenshots

Company's website

JeMaTo

Summary

In Germany, public authorities work in a very bureaucratic way which leads to waiting times of several hours even for routine tasks for which the required attendance time of a citizen often is less than 5 minutes. What a waste of time! Many people have to take leave for that! The idea of this project is to provide a web application that saves time on both sides: On the authorities' side the processing time of an issue is decreased by incorporating and supporting more efficient workflows. On the customers' side the goal was to shrink the waiting time to a couple of minutes. And this is exactly why this solution is better than other products that were already on the market!

Why did I love this project?

Because it saves a lot of one of the most important resources in the world: time! Want another reason? It's sharing the same code for browsers, iOS apps, and Android apps! This saves the developer, i.e. me :-), a lot of time when it comes to maintaining the code as there's a single code base. So, does every public authority in Germany use this app now? Unfortunately not; there were some major personal circumstances for a team member so we decided to set the project on hold. However, as this project isn't completely given up but rather postponed, I can't tell you how we would achieve the immense time reduction of citizens who have to visit a public authority. I know you would love to know that but as you haven't hired me yet, I can't afford to disclose the secret why customers would (hopefully!) pay lots of money for this solution.

What were the main technologies?

As this project is still not given up, I can't tell you too much about the technical side either. But what I can say is, that I use Meteor JS, a framework for isomorphic apps, to ensure that the same code base runs on different devices with different OS. Other technologies include jQuery, Twitter Bootstrap and some further libraries.

What was my role?

In a team of 3 there are two guys for marketing and business development while I'm the code monkey. In our brainstorming sessions I was responsible for evaluating new features regarding their feasibility and their estimated costs. After these sessions I started coding and turned these ideas into reality!