Marko Forss

Marko Forss

Software designer and MCU Core Chief Engineer

Followers of Marko Forss3 followers
location of Marko ForssHelsinki Metropolitan Area

Connect with Marko Forss to Send Message

Connect

Connect with Marko Forss to Send Message

Connect
  • Timeline

  • About me

    Software Architect and Engineer at Bombardier Transportation Finland Oy

  • Education

    • Walter Ahlström College of Technology

      -
      Bachelor of Science - BS Automation Engineer Technology/Technician

      Thesis: The measurement unit for the maintenance system of the rolling cylinder.

    • University of Helsinki

      -
      Master of Science - MS Computer of Science

      Thesis: Management of the Software Configurations

  • Experience

    • Nokia

      Jan 1994 - Jan 1997
      Software designer and MCU Core Chief Engineer

      I started my career with embedded systems by implementing a testing system for radio frequency- and base band related parts. After that I was Software Chief Engineer of one phone model in a product family. I was responsible for power management, battery monitoring and external interfaces like hands free. During that time all work was done by using a proprietary operating systems and messaging buses, using C- and assembly languages. Symbian was behind the corner.

    • Daimler Chrysler Rail Systems

      Jan 1997 - Jan 2001
      Software Engineer

      I worked for a European research project (MARCO) that tried to find mathematical solutions for conflict detection and resolution to be used in main line type of traffic. My main task was to design and implement database interfaces for train related data and timetables. SA/SD –design was used in that time.I designed/implemented Train Describer System that identifies a moving train and location based on interlocking indications. I also took my first touch to simulators and UML.

    • Bombardier Transportation

      Jan 2001 - now
      Senior Software Engineer

      My basic nature is to do everything with high quality. Perhaps for that reason I have designed and implemented many common SW libraries to be utilized by other SW designers; for example common server framework including patterns for IPC messaging, timing, multithreading and database - component for railway topology services like advanced searching algorithms, real time data about points, tracks and signals – services for train properties and movement.Object-oriented modelling and design is a natural way of thinking about concrete real world problems. Modern standardized C++ is a powerful language for implementing those problems. It is still valuable programming language in server side (back- end) and supported by many external libraries. I have also used C# and Java (Kotlin would be better now). If you can manage one programming language properly, it is easy to use other similar. C# is coming more interesting also in server side. It does not suffer heavy standardization process, like Java for example, and it is almost platform neutral.In many cases a system development life cycle is long. The cycle should be automated as much as possible also in software development phases. I am familiar with configuration management and version control systems like subversion and git. One key task is to integrate an application with a version control system that the application itself and all external components and interfaces can be identified and automatically tested (unit tests, static analysis, code metrics etc.) as a part of DevOps. Näytä vähemmän

    • Bombardier Transportation

      Jan 2012 - now
      Software Architect

      I have always been interested about software processes and methodologies. There must be some common guidelines, with freedoms of course, how to work together in discipline way. I have created common templates to be used in software requirement- and architectural design phases based on mainly ESA/CENELEC standards, OMT and UML as a description language. Nowadays we have an Agile development but these same phases can be found from there also.One of my main interest is distributed systems; how the applications are communicating with each other, who owns data and how data should be stored in persistent way. Naturally a high availability is one key issue in this area; distributed databases, clustered servers and messaging. I have used many commercial- and proprietary message buses, created common libraries that hide actual messaging protocols (STOMP, JMS, AMQP) from the user. Inside the protocols, I have defined message content models based on XML, JSON and Google’s protocol buffers. They are natural and common description formats to be used in all operating systems and programming languages. Portability and reusability are important issues in software engineering.During the last years I have concentrated more and more to system level engineering and architectural design. User requirements, and requirements in general, must be analysed in higher level that they can be allocated to proper components and described by epics, stories and tasks. But I still like coding, it is a good way to learn new things in concrete way. You can see what is behind a hyped feature. Näytä vähemmän

  • Licenses & Certifications