full name: email: mobile: address: born on: marital status:
Wojciech Cendrzak wojciech.cendrzak@gmail.com (48) 604 541 128 ul. Piramowicza 6/6, 44100 Gliwice, Poland 1979.01.08 single
EDUCATION AND CERTIFICATES 2015.09.15 MCSD 70480 “Programming in HTML5 with JavaScript and CSS3” 1998–2003 MSc in Automatic Control and Robotics, Silesian University of Technology in Gliwice Faculty of Automatic Control, Electronics and Computer Science 2009–2013 BSc in Architecture and Urban Planning Silesian University of Technology in Gliwice TECHNICAL SKILLS LANGUAGES: C#, JavaScript, TypeSctipt, Html5, CSS3, SASS, SQL, VB, C/C++, Java, Pascal IDE: .Net VS 20052015 (Framework 2.04.5, CF 2.0 for WinCE 4.05.0), NetBeans 8, Atom 1.0, Brackets, Sublime, Delphi 5.0, Builder 6.0, Eclipse, Siemens PLC TEAM TOOLS: TeamCity, Jira, Stash, Confluence, Octopus, Git, Source Tree, SVN, SourceSafe, DEV TOOLS: nuget, grunt, Resharper 9, Platform Builder 5.0 for WinCE image DATABASE: MS SQL 2008, IIS 7.58.1, MS SQL CE 2.0, MySQL 5.0, MS Access, TOUCH OF: Azure, karma, grunt, gulp, node.js, d3.js Angular2, Hadoop, DFS, Joomla, Wordpress, nmp, React.js, Sass, TortoiseVNC, WebStorms, XNA, liveserver, jdoom, firebase OTHERS: Adobe PS Corel, Gimp, Inkscape, 3dsMax, LANGUAGES English upper intermediate level German intermediate level Spanish pre intermediate DRIVER LICENCE A, B PASSIONS Christian community, choir singing, architecture, bass guitar, basketball, volleyball ONLINE REFERENCES https://github.com/bitpocket
EXPERIENCE 2014.08 – present – “Future Processing” (www.futureprocessing.com) web site developing Client: Euromoney Institutional Investor PLC, London, UK Activities: web site enhancement developing, agile Backend stack: ASP .Net VB, C#, MSSQL 2008, IIS 7.58.1 Frontend stack: Html5, CSS3, AngularJS, JavaScript, TypeScript, underscore, bootstrap, jQuery Team stack: Jira, Stash, Confluence, Octopus, Source Tree, SVN, TeamCity Results: www.euromoneylearningsolutions.com 2007.10 – 2011.05 – freelancer Maintained seat's production line monitoring system Client: “Bernal Automation” http://bernalautomation.eu, “TwbPresswerk Gmbh & Co.” www.preventtwb.com Activities: implementing new features and extending existing one, fixing bugs, data base migrating Stack: TSQL, Ms SQL, Delphi, multithreading, Developed Artificial Intelligence based software for music generation Activities: musicians consulting, implementing Brute Force and Genetic Algorithm Stack: .NET, C#, WinForms, multithreading 2004.10 – 2007.10 – by RW Swiss Automation sp. z o.o. Developed industry MRP like system Client: “Woehrle” www.woehrlemetall.de, “Duerr” www.durr.com Activities: designing clientserver application, socket based TCP/IP protocols between WinCE and Siemens PLC Place: Stuttgart, Wildburg in Germany, Nitra in Slovakia Stack: C#, WinForms, Win Services, WinCE 5.0, MS SQL 2005, barcode scanners, TSQL, CUDA, VPN, multithreading Developed monitoring system for shock absorber assembly line Client: Delphi Activities: designing SCADA application, exchanging between PC and PLC (Alan Bradley) via TCP/IP Place: Stockach, Germany (6 months) Stack: Object Pascal (Borland Delphi), MS Access, DDE Developed seat's production line monitoring system Client: “TwbPresswerk Gmbh & Co.” www.preventtwb.com Activities: designing an architecture of SCADA system consisted of front application and servers for data acquisition form industry welding devices, quasiprotocol between PC and Siemens PLC via TCP/IP, database, testing, deploying, maintaining Place: Hagen in Germany (10 months) Stack: Object Pascal (Borland Delphi), MySQL, OLE, VB 20132016 – Hobbies Projects Speaker Stack: Angular2, FireBase, Sass, HTML5, CSS3 Kind of Melody Game Stack: Angular2, D3js, HTML5, CSS3 Result on: https://github.com/bitpocket/KindOfMelody RBOX – (Robot Box) – language, IDE and industry robot simulation Activities: designing language, implementation and simulation for Robot IRB6 Stack: C#, .Net, WinForms, XNA, Irony Language Implementation Kit, multithreadin 2003.07 – Education Master thesis Title: “Simply programming language and robot visualization for IRB7 robot” Stack: C++, YACC, Bison, Flex, VS 6.0, OpenGL
CONTENTS PROFESSIONAL WEBSITE EUROMONRY LEARNING SOLUTION DESKTOP SCADA FOR VW PASSAT PRODUCTION LINE DESKTOP SCADA FOR SHOCK ABSORBER ASSEMBLY LINE DESKTOP / TOUCH PANEL MRP SYSTEM FOR WASH MACHINE MANAGMENT PASSIONS, HOBBY, STARTUPS, MASTER THESIS DESKTOP
"RENAISSANCE WORM" A RENAISSANCE MUSIC GENERATOR
DESKTOP
RBOX (Robot Box) PROGRAMMING LANGUAGE AND ENVIRONMENT
DESKTOP
SIMPLY PROGRAMMING LANGUAGE AND ROBOT VISUALIZATION FOR IRB7 ROBOT
DESKTOP
EDI SUPER MEMO LIKE APPLICATION FOR LEARNING WORDS.
EUROMONRY LEARNING SOLUTION WEBSITE Client: Activities: Place: Stack: Time:
Future足Processing (www.future足processing.com), Euromoney (www.euromoneylearningsolutions.com) developing new features, agile, pair足programming Gliwice, Poland AngularJS, JavaScript, TypeScript, ASP .Net WebForms, VB, C#, MSSQL, Html5, CSS3, underscore, bootstrap, jQuery, Jira, Source Tree, Stash, SVN, TeamCity 2014足2016
MONITORING SYSTEM AND DATA ACQUISITION (SCADA) FOR VW PASSAT PRODUCTION LINE Client: Activities: Place: Stack: Time:
“TwbPresswerk Gmbh & Co.” www.preventtwb.com designing an architecture of SCADA system consisted of front application and servers for data acquisition form industry welding devices, quasiprotocol between PC and Siemens PLC via TCP/IP, database, testing, deploying, maintaining Hagen in Germany (10 months) Object Pascal (Borland Delphi 5.0), MySQL, OLE, VB 20042005 (development), 20052011 (maintanance)
Pic: Legend. Machine states: manual return to reference position stop automatic Device states: door opened door closed alarm information task in process unknown state
Pic. Main application screen. Application was installed on industrial computer PC Siemens with RAID HD. Designed for continuous work for 3 schifts work model. Main goal was: welding parameters acquisition and storing in data base, collecting alarms and line logs. This supervisory application could change state of whole production line (start, stop, manual and automatic work) and change type of production about 20 seat models.
Pic. Sign in forms for several stations.
Pic. Parameters detail forms of actual weldings. Application enables weldings validation right after there ware done.
Pic. Changing type of seat for production. Changing over could be done after last part left line. Pic. Production counter. All products was stored with in data base with barcode, date, validation state and all weld parameters. (about 500 fields for each seat)
Pic. Changing work mode for specific station.
Pic. Schema of designed communication protocol. A specific communication protocol was introduced for exchanging data between PC and PLC simens industry controler. Bidirectional comunication consist of orders like material flow, welding parameters set, changing line state (stop, manual, automatic work). Also has area of several device state and PC to PLC clock synchronisation needed for proper integration data from different sources.
Pic. Connection window. System SCADA was communicated with several devices: 6 PLC indudtrial controllers, 8 weldings machines Fromius MAG, PEGASUS software, data base Every connection lost was produced alarm.
Pic. Server PLC PC z PLC connection layer was separated to another PLC server application. Upper communication PCÂPLC protocol was designed on base Siemens SIMATIC NET. lower protocol. SCADA to PLC server communiation designed on Shared Memory base.
Pic. Server of Fronius device weld parameter based on OPC Fronius.
Pic. Topology of data exchange between welding devices and SCADA.
Pic. Schema of specyfic protocol order. Order number 11: Sending welding parameters of choosen seat.
MONITORING SYSTEM AND DATA ACQUISITION (SCADA) FOR SHOCK ABSORBER ASSEMBLY LINE Client: Activities: Place: Stack: Time:
Delphi Krosno http://www.delphikrakow.pl designing SCADA application, exchanging between PC and PLC (Alan Bradley) via TCP/IP, testowanie Stockach, Germany, Krosno, Poland (7 months), Object Pascal (Borland Delphi), MS Access, DDE 2005 (development), 20062007 (maintanance)
Pic. Authorization form.
Pic. Main application form. Main goal of SCADA: collecting data and presentation: alarms, delay production time, change over time, collecting product counters.
Pic. Legend.
Pic. Log form. Displayng all events on the line: alarms, logs, change over actions.
Pic. Data presentation. One of the key goal was investigation what part of process was generating delays, how long specific device was in alarm mode and how frequent it fall into that state. An simply wizzard, designed for data comparation enabled general to detail approach in finding malfunction reasons. System converts wizards query to SQL query and display graphic results.
Pic. Graphic data presentation. System is collect datas generated by GARDNER module  gas filling.
Pic. Product counters. Every bumper is store in Data Base. An current and archive reports can be then generated.
Pic. Standard table data presentaion.
MRP SYSTEM FOR WASH MACHINE MANAGMENT Client: Activities: Place: Stack: Period:
“Woehrle” www.woehrlemetall.de, “Duerr” www.durr.com designing clientserver application, socket based TCP/IP protocols between WinCE and Siemens PLC Stuttgart, Wildburg in Germany, Nitra in Slovakia C#, WinForms, Win Services, WinCE 5.0, MS SQL 2005, barcode scanners, TSQL, CUDA, VPN, multithreading 20062007
Pic. Touch panel application Application was designed for work on chemical wash machine production lines. Tha factories of Woehrle company was placed in Germany (Krautheim, Wildberg) and Slovakia (Nitra). By using barcode scaners operators be able to edit detail of each product like parameter list . Key feature was also ability to store incomes from line: alarms, logs and counters. Technology stack was consisted of: .Net Compact Framework 2.0 (Visual Studio 2005 C#), Operating Stystem Windows CE 5.0 which was previously compiled to specific device by usage of PlatformBuilder MSSQL 2005 (connection between Windows Server 2008 and Windows CE 5.0 was based on Windows Web Services) Hardware: Touch Panel PPC 12 '' IHB Link S7 for PLC Panel connection Gryphon D130 barcod scanner
Pic. Touch panel application On the pictures a several forms of typical DUERR wash machine process was shown. The mashine was installed in Woehrle factory in Krautheim in Germany. Operator could enter chemical wash recipe for steel products and after validation could start process. Touch Panel and Desktop applications was a parts of MRP system.
Rys. Baza danych Aplikacja umożliwiała połączenie z dowolną bazą, nawet poza obszarem fabryki poprzez VPN.
Pic. Desktop application. This part of MRP system was designed to work in any place even outside the factory. Presented screenshots is a TWB company (Hagen in Germany) installation. Together with Panel Application was designed for seat' carpet sticking machine for different models of cars. Managers as users could enter new products and set them with apropriate parameters as is shown on pictures. Technological stack: .Net (Visual Studio 2005 C#), Windows XP MSSQL 2005
Pic. Reports generator. Presenting acquisited datas from machines was key feature. On the pictures machine state in specific time period was shown.
Pic. Example of production counters report.
Pic. Parameter editor for one of machines in TWB company in Hagen in Germany. Pic. User setting with acces level for each machine.
Pic. Periodical machine maintanance was one of important feature. Application could enter machine parts and its date of service. After time elapsed an specified action could be triggered, exp: reminder sending.
Pic. Report generator window with set of carpet sticking process for one of car's model
Pic. Search product window.
Pic. Product editor: carpet sticking for Leight 1BS model.
"RENAISSANCE WORM" A RENAISSANCE MUSIC GENERATOR BRUTE FORC METHOD GENETIC ALGORYTMH METHOD Activities: Stack: Periods:
musicians consulting, implementing Brute Force and Genetic Algorithm .NET, C#, WinForms, multithreading C++ (Builder 6.0), Object Pascal (Delphi 7.0) 20032004; 20082009
Pic. Example of renaissance rule. An implementation of note progression rule was shown on picture above. A renaissance rules was taken from several theoretical literature position: Hieronim Feicht "Polifony of renessaince", 1957, Jana Gawlas "Contrapunct basics principles" 1979, Johann Joseph Fux "Gradus ad Parnassum" 1725, (technic of Giovanniego Pierluigi da Palestrina 15251594) An about 50 ruler was taken into consideration and implemented.
Pic. Main screen. Brute Force with heurystic method. In "Project" window an scheleton composition names architectonic could be designed consisted some predefined blocks: Cantus Firmus (CF) independent melodic line known as leading voice. Several kind of contrapuncts (K1, K2, K3, K4, K5) a voice dependent on Cantus Firmus and other contrapuncts, single, doube or triple polyphony One of historical scale like: (Ionian, Dorian, Phrygian, Lydian, Mixolydian, Aeolian) could be also choosen by the user and also bar length of melody. After pressing "Run" button a new tab was created. Music gneration process was done in seperated thread due to lalge time conduming. Finded solution are those which was accepted by previously applicated rules of renaissance music. Solution could be presented in sore view in seperate window.
Result window was able to either present solution in score mode as well as detailed information about rules that was used to produce every single piece of solution. User was able to make changes in solution and observe acceptance of rule therefore.
Pic. In result window user was able to examinate every note according to its acceptance by set of rules assigned to them.
Rys. fragment architektury aplikacji.
Pic. Result of genetic algorithms experiments  silngle line melogy generation. First testing task was designed to find note chain that was accepted by only single rule as follow:  every note in chain should be c2. Several scenarios of genetic algorythm was examinated: binary genotype, value genotype (with mutation, adaptative mutation) varry population size scenario. The best result was obtained for value genotype with adaptative mutation, where fitness function gain 1.0 (red color on graph).
Pic. Local minimum of fitness function problem. Second experiment task involved single rule that accepted situation where two neighbors difference is equal to one semitone. A best previous scenario was applied: real number genotype with adaptatice mutation. Results shows that even for only one rule that has chaining impact for neighbors, a fitness function falls into local minimum each time and cannot leave. A supose risen that for more rule with chaining efect this genetic implementation will not bring expeced results.
Pic. Renaissance worm 7.0. Earlier version of renaissance music generator. Written in C++ with Borland Builder 6.0 IDE. Brute Force technic with heuristic was applied. User can describe composition architectonic by designing block of composition (Cantus Firmus  blue color, four kind of Contrapuncts  green) After pressing "Generate" button application finding one randomised solution and shows in score mode. By pressing "PLAY" solution can be lisened. User can also choose one of the 128 MIDI instruments and set tempo.
Pic. Application preferences give able to edit set of generation rules for each block of solution architectonic. Black color 足 can be choosen to generation process. Gray color 足 core rules 足 always used in generation process. Yellow 足 rules that was not implemented yet.
Pic. After solution was founded examination of rule acceptance can be done in property window.
RBOX (Robot Box) "PROGRAMMING LANGUAGE AND ENVIRONMENT" Activities: Stack: Period:
designing language, implementation and simulation for Robot IRB6 C#, .Net, WinForms, XNA, Irony Language Implementation Kit, multithreading 2014
Pic. Main application form RBOX application give oportunity to explore new designed language named GBOX in order to control robot movement. Writen program is then parsed to tree representation by usage of .Net Irony language library. Resulted tree is then parsed to machine code and then this code is executed. After function Move() is called a working device part of robot is moved by it to specified in program coordinate system. Interface description: 1 code in GBox language 2 grammar production tree 3 machine code 4 simulation window (XNA) 5 Watch  variable states 6 Output window
MASTER THESIS SIMPLY PROGRAMMING LANGUAGE AND ROBOT VISUALIZATION FOR IRB7 ROBOT Activities: Stack: Period:
Adaptation of existing language FX with new libraries functions, implementation of simply and reversed kinematic task. Implementation of simulation with OpenGL. C++, YACC, Bison 1.35, Flex 2.5.4a, Visual Studio 6.0, OpenGL, multiÂthreading 2003
FX IDE FX application as complet environment was designed test and execute a programs written in new language FX. A simulation of industrial manipulator can be observed in seperate window.
Pic. Application toolbar There are several tools avaiable: Form the left: 1 run programm 2 pause programm 3 resume paused 4 stop 5 run in debug mode 6 show the application log 7 show degugger window 8 show variables watch window 9 show IRB6 manipulator simulation
Pic. Main application screen. Picture contains following parts: 1 code window (FX language) 2 LOG window additional information from execution: logs, errors, traces labels 3 watch of variables 4 debugger window 5 vector variable watch oppened after double click on watch row (window 3).
Pic. Preferences window.
Real time simulation. The real time simulation was interpolated by use thirdÂdegree polynomial. The inverse kinematics give a natural coordinates of start and end target position of robot. Then, for each robots elements the movement function is calculated. Four boundaries (1) can be resolved by a least thirdÂdegree polynomial (2). Combining together (1) and (2) it gives four equations (3) that can be solve to into (4).
Pic. Visualusation screen. There are a shapshot of simulated movement of manipulator IRB6. The several target points are represented as coordinate system with Red, Green, Blue colors as XYZ axes. Gray axes lies outside working range of manipulator. The continous gray line indicated tracked movement of severas semi target points.
Pic. Screenshot of typical simulation. Targets was delivered as cylindrical coordinates. Picture above was taken from execution of FX program below: z = 0.3; alfa = 90; a = punktc(z, alfa, 0.7) ruch(a); while ( z < 2.5 ) do a = punktc(z, alfa, 0.7) ruch(a); alfa = alfa +10; if ( alfa > 180 ) then alfa = 90; z = z + 0.1; endif endwhile
Pic. Generated section of manipulator workspace. One benefit of that kind of visual simulation is to generate section with given precise of manipulator workspace. On the picture above, an effector part of the manipulator was statical oriented. y = 0.7; z = 0.0; while ( z < 2.5 ) do a = punkt(0, y, z, 90, 90, 0); ruch(a); y = y + 0.15; if ( y > 1.1 ) then y = 0.7; z = z + 0.15; endif endwhile
Pic. Different way for defining target points and its accessibility. There are three ways of defining targets: cylindrical, spherical and cartesian. The final, carthesian position was riches with translation precised only. Gray line represents a trajectory on which end effector was moving through targets.
b = punktc(1, 0, 0.7); ruch(b); c = punkts(1, 90, 0.7); ruch(c); a = punkt(0.5, 0.5, 0.7, 90, 30, 0); ruch(a);
Pic. Straight line trajectory. Distance between start and the end targets is devided by several middle point. Those points represents a new trajectory that then end effector will follow. The Precise of straightness depends then on number of middle points. This number can be changed in application preferences.
a = punktc(1, 90, 0.7); ruch(a,1);
EDI "SUPER MEMO LIKE APPLICATION FOR LEARNING WORDS." Activities: Description: Stack: Period:
Designing, implementing, testing. Create a sets of words, pictures and learn with surer memo SM2 algorithm. .Net C#, WinForms 20062014
Pic. Main screen of application. With Edi application you can create set of words by usage online portals: pons.pl – for German dict.pl – for English The audio file can be downloaded and played back with help of google translate API. Learning's efficiency is based of forgetting curve and its implementation SM2, discovered by Piotr Wozniak. UI description: 1. set creation window 2. learning window.