Company logo

INGENIEURBÜRO
SOFTWARE SYSTEMS

Ingenieurbüro Software Systems is an engineering firm that is a competent partner for the development of software systems and the solution of complex tasks.

Jürgen Ehret Head & Founder Dr.-Ing. Jürgen Ehret
Head & Founder

With Dr.-Ing. Jürgen Ehret, you have an experienced and reliable development engineer at your side. Jürgen worked for many years at BMW as a development engineer at the Research and Innovation Center (FIZ) in Munich and at the BMW Technology Office in Palo Alto, California. In interdisciplinary teams, he developed software for electronic drive and chassis systems for series production and researched new approaches for the development of safety-critical drive-by-wire systems in his dissertation.

After moving to Silicon Valley in California, Jürgen worked as a freelance software engineer and supported both well-known companies and a start-up in the development of software systems. Further details can be found in Jürgen's Brief Biography >

Jürgen Ehret Head & Founder

Brief Biography

Jürgen Ehret

Born and raised in Freiburg im Breisgau, Germany, Jürgen has developed into an internationally experienced development engineer.

Jürgen has learned his trade from scratch. He completed an apprenticeship as an energy system electronics technician with Deutsche Bahn, obtained his Abitur via the second educational path, and then studied electrical engineering at the University of Karlsruhe (TH).

As a young graduate engineer, he began his career at BMW in Munich and worked for many years in collegial, interdisciplinary teams on exciting projects that taught him the art of engineering and eventually led him to Palo Alto, California. After many fascinating years in software development, he earned his doctorate on the topic of “Validation of Safety-Critical Distributed Real-Time Systems” while working for BMW at the Technical University of Munich (TUM).

Jürgen then relocated to Silicon Valley, where he worked as a freelance software engineer. Both in established companies and in a start-up, he successfully mastered challenging software development tasks under agile working conditions for his clients.

In his projects, Jürgen has shown through his analytical and creative skills how theoretical knowledge can be successfully applied to solve practical tasks.

After returning to Germany, he founded the engineering company Ingenieurbüro Software Systems, which specializes in the development of software systems.

Jürgen loves nature, which he enjoys as often as possible while hiking or jogging, and he loves to read interesting books.

For more information about Jürgen's professional career, please see his Curriculum Vitae.

What We Do and How We Do It

We work closely with our customers to develop efficient solutions for their specific tasks and implement them in powerful and reliable software systems!

The task can look like this, for example:

  1. Design and implementation of a software system—from the idea to market maturity.
  2. Expansion or optimization of software systems.
  3. Development of software to simulate and analyze a physical process.

We firmly believe that developing high-quality software to satisfy clients requires fundamental values and principles. The “Manifesto for Agile Software Development” is both a guideline and a motivation for us to meet this high standard:

“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.”

(Excerpt from: Beedle, Mike, et al. 2001. “Manifesto for Agile Software Development”. https://agilemanifesto.org/)

Section Headline

Selected Projects

Discover the expertise and experience Jürgen can bring to your project. Get in touch with us. Together, we will make your project a success!

Symbol of Smartphone App

Computer Vision App

IBSoftSys

Symbol of Smartphone AppOut of interest in computer vision and digital image processing, Jürgen developed an application that simulates human vision and thinking when playing the SET® card game. Assuming normal lighting conditions, the developed smartphone app not only finds the right solution before all other players but also all solutions.

Software Tools

Objective-C C/C++ iOS Xcode Scilab/MATLAB OpenCV

Details >

Symbol of Smartphone App

Computer Vision App

IBSoftSys

The idea for this app emerged at Laurelwood Elementary School in Santa Clara, California. As a volunteer, Jürgen played the card game SET® with second-graders in math class as group work, which trains visual perception and logical thinking. He kept imagining how a smartphone could take over his role as a referee.

Based on this vision, Jürgen developed the smartphone app AI Card Player. The app recognizes the colors and symbols of the playing cards, calculates all permitted combinations, and presents the solution to the puzzle in a very clear and understandable way.

Most of the development has been finding a reliable way to recognize the colors and symbols of the playing cards and translating that model into efficient software. Interestingly, the visual perception of playing cards and the learning of the symbols is a relatively easy task for us humans, but they do not represent a trivial problem for a computer system. In contrast, the replication of logical thinking seems to be child's play for a computer system. The implementation of the rules of the game only accounted for a tiny fraction of the development effort.

You can find more information about the app at the web page AI Card Player.

Software Tools

Objective-C C/C++ iOS Xcode Scilab/MATLAB OpenCV

SET® is a registered trademark of Cannei LLC licensed by Set Enterprises, Inc.

Symbol of Crash Test Dummy

Embedded Systems

BMW Group

Symbol of Crash Test DummyIn interdisciplinary engineering teams at BMW, Jürgen developed software for electronic systems (embedded systems) for steering and drive systems in vehicles. After working for many years in the development department, Jürgen researched methods for developing software and hardware for future drive-by-wire systems for his doctoral thesis and BMW.

Software Tools

C/C++ Assembler ASCET VCC

Details >

Symbol Crash Test Dummy

Embedded Systems

BMW Group

In interdisciplinary engineering teams at BMW in Munich, Jürgen developed software for electronic control units (embedded systems) for steering and drive systems, which went into series production in the 3 and 7 series, for example.

His task was the development of real-time critical software systems that were used with different hardware configurations in many vehicle variants. The area of work included the creation of the first prototypes in the laboratory, the subsequent integration into the vehicle, system tests in the vehicle even under the most extreme climatic conditions and the support of the software systems after the start of series production.

The increasingly complex systems in vehicles, such as drive-by-wire systems, required the use of new methods and tools. In order to meet the significantly higher requirements for software and hardware, Jürgen developed and evaluated new approaches to developing such systems as part of his doctorate at the BMW Technology Office in Palo Alto, California.

Software Tools

C/C++ Assembler ASCET VCC

VCC: Virtual Component Co-Design

Symbol of Distributed System

Modelling & Simulation

GM Advanced Technology Office

Symbol of Distributed SystemTogether with the GM Advanced Technology Office, Jürgen developed a model for simulating networked control units. Using the model, the engineers at GM were able to simulate and analyze the networking of the control units in new models.

Software Tools

C/C++ MLDesigner

Details >

Symbol of Model of Distributed Systems

Modelling & Simulation

GM Advanced Technology Office

General Motors (GM) in the USA was looking for a simulation model for distributed electronic control units (ECUs) in their vehicles. The overriding goal was to develop optimal system architectures for future vehicle models.

Together with Paolo Giusto, a scientist and engineer at the GM Advanced Technology Office in Palo Alto, California, Jürgen developed a model in the MLDesigner simulation program that can simulate the distributed ECUs. The heart of the model was a search algorithm that analyzed all possible communication channels and thus enabled a quantitative evaluation of different system architectures. Individually developed evaluation functions also allowed a simple analysis of the simulation results and rounded off the developed software package.

The simulation model, which is based on statistical methods, was accepted by the engineers and successfully used in the development department at GM.

Software Tools

C/C++ MLDesigner

Symbol of Test Software Systems

Software Testing

Cisco Systems & Crosstest

Symbol of Test Software SystemsIn the start-up Crosstest, Jürgen developed modules for a software tool that software developers use to test their C/C++ code. Later, Jürgen was part of the support team at Cisco Systems, where he developed methods for testing software and supported the automation of tests through shell scripts.

Software Tools

Java C/C++ Perl Shell Scripts

Details >

Symbol of Test Software Systems

Software Testing

Cisco Systems & Crosstest

In the start-up Crosstest,San Mateo, California, Jürgen and a small team developed a software tool that generates unit test cases for C/C++ functions. The tool supports software developers in testing their software functions in order to identify and eliminate errors in the code at an early stage. The CEO of Crosstest, Khalid Sebti, was very excited about a new software module that Jürgen was developing and remarked: “Jürgen, you have set the bar very high for us!”

With a similar goal in mind, Jürgen worked on a support team at Cisco Systems, San Jose, California. In the team, Jürgen developed shell scripts for test automation and general guidelines for testing software. Another important task of the team was to familiarize the software developers with these new tools and methods and to support them in their application.

Software Tools

Java C/C++ Perl Shell Scripts

Symbol of Search for Contacts

Web Page Filtering

Car Trade Service

Symbol of Search for ContactsJürgen developed a software program that searches the websites of an online vehicle market for contact details of car dealers that are of interest to the car trade service. The contacts found are prepared for commercial programs in such a way that the data can be easily imported there.

Software Tools

Python PHP Beautiful Soup JSON Selenium WebDriver Shell Scripts

Details >

Symbol of Search for Contacts

Web Page Filtering

Car Trade Service

A Berlin car trade service wanted a software program that would search the generated websites of an online vehicle market according to selected criteria (brand, price, etc.) and filter out contact addresses that were of interest to him from the flood of information.

A challenge in this project was the high number of requests to the web server of the online portal (more than 50,000) and the associated time delays or even interruptions by the web server.

The solution to the problem was to break queries into smaller units and save the intermediate results in a standard format. As a result, the data could ultimately be merged into the desired dealer lists, regardless of the Internet connection. The generated list can now be easily imported from a standard program, for example, Microsoft Excel or Apple Numbers, and displayed clearly as a table.

This solution made the software system not only more robust and scalable, but also faster.

Software Tools

Python PHP Beautiful Soup JSON Selenium WebDriver Shell Scripts

Section Headline