Software and Hardware engineer
CubIT IT Consulting company (owner)
Krakow, Poland, European Union
andrzej.michalec A-T gmail D-O-T com
- Over 19 years of experience in IT business including 10+ years as Software Engineer and Software Developer, and 9+ years of experience playing multiple roles such as Requirement Analyst, Software/System Architect, solutions advisor, technology researcher and presales supporter.
- Designing software solutions in micro- and macroarchitecture scale.
- Development in heterogenous environments under Windows, UNIX and embedded platforms control.
- Practice in all software development life cycles, various technologies and methodologies, wide spectrum of computer software and hardware knowledge.
- Experienced in position of independent worker and co-worker.
- Sense of aesthetic useful in user interface designing.
- Strong analytical and problem-solving capabilities, sharp troubleshooting skills.
- Ability and willingness to learn and use the knowledge in different areas of computer technology and microelectronics.
- Personality: meticulous, modest, reliable, imaginative, realistic and assertive.
Java | J2SE core functionality (6 years): SCJP, SCJD; Eclipse IDE (4 years); Backend multithreaded POJOs; Wicket, Servlets/JSP/JSTL, Swing/JFC; Hibernate/JPA, JAXB, JDBC, Log4J, JMX, DOM/SAX; SpringFramework core, J2EE (JBoss, WebLogic); JUnit, AOP/AspectJ, JavaCC, Ant, Maven2; JAX-RS (Apache CXF commiter); |
C++ | Master’s degree thesis C++ OpenGL CAD application; MS Visual Studio 6.0, Win32 API, MFC (4 years); GCC 2.x, 3.x, (3 years); STL (4 years); PThreads, Bison, Bison++, Flex, ActiveX, CppUnit; |
Microelectronics & Embedded software | Profilled technical college; 8-bit AVR micro-controllers C language, c99 dialect (3 years); Multitasking with FreeRTOS, porting micro-power modes; KiCAD, EaglePCB, PCB factoring, SMT assembly; Designed and assembled several devices; |
Databases | Oracle, SQL, PL/SQL, Tora, Toad, (5 years); Pro*C, OTL, PowerDesigner (2 years); PostgreSQL, MySQL; |
Object-Oriented techniques | Design Patterns – GoF, some of J2EE/EAI; UML using RationalRose, Borland Together, Rational RSA, Sparx EA; Antipatterns, Refactoring; |
Service-Oriented techniques | BPM platform: WBIM, WPS, WESB, WID, BRMS (ILOG JRules); |
Middleware | CORBA – omniORB, OpenORB (1 year); |
Web and Mobile | JavaScript, Dojo Toolkit (3 years); HTML, CSS (2 years); jQuery Mobile / Cordova; |
Networking | TCP/IP – WinSock, BSD sockets (1 year); OpenWRT / embedded Linux; |
XML Applications | XSLT, XSD, XPath; |
Misc | Text processing (Unix scripting, awk/sed); OpenGL (master’s degree thesis); CVS (administration); SVN |
- IBM Certified BPM Application Developer – Business Process Manager Express or Standard Edition V8.5.5 (2016)
- IBM Certified Application Developer – WebSphere Operational Decision Management V8.0 (2016)
- IBM IT Certified Specialist, Level 2 (expert) (2010 & 2014)
– equivalent of Master Cerftified IT Specialist by opengroup.org - IBM Certified Mobile Application Developer – Worklight 5.0.0.3 (2012)
- IBM Certified BPM Application Developer – Business Process Manager Express or Standard Edition V7.5.1 (2012)
- IBM Certified SOA Solution Designer (2010)
- IBM Certified Application Developer for ILOG JRules (2009)
- IBM Certified Business Process Analyst (2009)
- Sun Certified Java2 Developer (Java 1.6, 2008)
- Sun Certified Java2 Programmer (Java 1.4, 2004)
- Developing IBM Lotus Domino 6 Applications: Foundation Skills (2005)
- OMG Certified UML 2.0 Professional (2004)
- BEA J2EE and EJB Training Course (2002)
- Oracle7 Database Administration Training Course (1998)
CubIT IT Consulting – own company Krakow, Poland, Europe |
|
Position: BPM Consultant | September 2016 – to date |
Contracted to government organization in Netherlands as a senior BPM specialist, focusing mostly on BPM applications development.
- Co-migrated and refactored 3 projects from BPM 8.0 to 8.5 replacing heritage coaches with CSHS.
- One year full-time assignment in development of business and integration complex project.
- Developed different cross-project tools: dependencies checker for toolkits and applications (JavaScript/dojo/BPM REST API), orphan tokens checker (multithreaded Java)
- Introduced dozen cross-project pure JavaScript custom widgets (coach views).
- Serving help to co-developers in different teams in solving complex issues, BPM product oriented as well as general engineering.
- Skills used: JavaScript / Dojo Toolkit, BPM Advanced, standalone Java/Spring applications and Java in BPM Advance, SQL, PL/SQL, WS/REST services, PDF authoring and processing forms from Java.
IBM Krakow, Poland, Europe |
|
Position: Consultant | June 2009 – September 2016 |
Joined technical professionals team supporting IBM business partners in middleware area. Team goal is to help business partners understand architectural and technical aspects of IBM solutions and apply them to customers’ problems. Such support ranges from technical guidance, thru deep-dive hands-on trainings and co-working, to proof of concepts and technical advocacy.
Focal areas of expertise, proven by certification, are smarter process (IBM BPM Standard from v7.5 to v8.5.5 and IBM ODM Standard from ILOG Jrules to ODM v8.0) and mobile ecosystem (IBM MobileFirst platfom, from Worklight v4 to MFPF v6.3).
Interlaced technology stack implies fundamental knowledge of other IBM technologies: WAS v8.x and Liberty Profile v8.5.5 application servers, BPM Advanced v8.x (ESB/IID) and Bluemix services.
- On-site work in Africa for company working on government project and adopting IBM BPM in their branch. Delivered basic training and later bootcamp for technical staff on selected existing end-to-end process. Exercise was followed by certification for clients’ developers. I was later engaged in remote manner addressing specific design and implementation questions.
- Skills used: BPM standard 8.5, Dojo Toolkit.
- Series of remote engagements helping in adoption of IBM mobile ecosystem in South-Eastern Europe. Delivered dozen of deep-dive implementation workshops, presentations and mixed sessions. Live coding demonstrations were typical highlighting features specific to audience e.g. NFC/Bluetooth support to hybrid apps etc.
- Skills used: IBM Worklight v5.x, JS, DojoToolkit, jQuery Mobile, Cordova, Android dev
- I have designed and edited workbook for new laboratory exercise added to advanced implementation training delivered by my team. I have built supportive tools in Java to interact with JMS in Liberty Profile as part of exercise. As side effect I found and reported bugs on Worklight 5.0.3 JMS adapter version.
- Skills used: Worklight, JMS, WAS Liberty Profile, Java JDK / Eclipse.
- Singapore on-site implementation bootcamp on BPM Standard v8.0 was followed by addressing several issues business partner was struggling while developing e-government platform. Implemented skeletons of widgets showing cross-widget client-side communication using DojoToolkit pub/sub, prototyped multi-row selection tables with validation rules based on row content, in runtime instead of design-time.
- Skills used: BPM standard 8.0, Dojo Toolkit.
- Mixed on-site and remote work in one of Arabic countries on BPM Advanced v7.5. Client was facing performance issues with XML processing and AIS bridge overheads. Worked actively with local IBM team to collect evidence, pass thru support and PMR process, and find workarounds.
- Skills used: BPM advanced 7.5, AIS/ESB.
- One of national ISVs was validating ODM Standard for banking project. The goal was to crunch customer profiles with history of transactions using rules encoded logic and offer customized products pricing. I co-worked with ISV team on lazy-loading approach to data fetch from XOM model based on EJBs to cope with need for deep and rare data navigation in mass scale.
- Skills used: ODM BOM/XOM modeling, JEE5 EJB.
- Local energy sector IBM business unit was discussing with partner company a technology stack to support processing of smart meters’ data. I was tasked research on rules engine (BRMS ILOG JRules) feasibility in context of MDM/R VEE measurements validation module. Despite optimistic performance benchmarks I voted against BRMS in stack, due to initially-hidden static nature of rules.
- Engagement offspring was BRMS article published in national energy sector newspaper.
- Skills used: ILOG JRules, Java SE6.
Self-sponsored project Krakow, Poland, Europe |
|
Position: Hardware and Software Engineer, Research and Development | March 2013 – November 2015 |
Free-time hardware and software project of autonomous and automated hydrological station. Hardware part of project is device collecting water flows and rainfall data and instantly sends data to central server. Embedded programming done in C language (c99/winavr) has 10 KLOC of proprietary source code, libraries excluded. History of selected project aspects is collected in series of online articles available at http://amichalec.net/tag/wls.
- Designed and assembled several hardware subsystems e.g. solar panel and battery IC driver, high-efficiency DC/DC converters, GSM module, RS-485 transmission line with surge and lightning protection
- Ported FreeRTOS to atmega128 microcontroller and added non-existing RTOS functionality of deep-sleep mode.
- Prototyped and built own remote underwater probe.
- Designed in CAD and built on 3D-printer several structures, from support frames to complete rain gauge.
- Implemented centralized firmware distribution (FOTA) with cryptographic protection.
- Developed JEE6 based central server system with interfaces for hardware and prototyped web application for data visualization and management.
IBM Krakow, Poland, Europe |
|
Position: Advisory Software Engineer | August 2008 – June 2009 |
In the flux of projects reorganization moved to Tivoli Application Dependency Discovery Manager project to lead UI development team.
- Led UI team in both technical and political areas, participated in architectural meetings etc.
- Introduced RESTful WebServices based on JAX-RS spec as base for DojoToolkit based RIA application.
- Skills used: JAX-RS, JAXB, DojoToolkit, JavaScript
IBM Krakow, Poland, Europe |
|
Position: Chief Programmer, Software Engineer | August 2006 – July 2008 |
Employed in IBM’s Krakow SWG Laboratory. After couple weeks of settlement and internal trainings assigned to Tivoli Service Level Advisor 6.x project based on IBM Tivoli Monitoring (ITM) platform.
- As one of technical leaders co-worked with product manager, architects and other involved people to clarify vision of product, integration issues and so on.
- Established skeletal design of main backend component: multithreaded evaluation engine; and drove development team to build piece of quality software.
- Skills used: J2SE (w/ multithreading), Spring framework, AspectJ, Ant, Checkstyle, GUI desing, UML, Design documents authorship
DRQ Enterprise Software House Krakow, Poland, Europe |
|
Position: Technical Leader, Senior Software Engineer and Software Architect |
November 2004 – June 2006 |
Still providing the same values as in Experts Division. Additionally:
- Co-worked to obtain and realize first project to national biggest telecommunication company. Participated to technical meetings to adapt Single-Sign On and Federation solution. Thanks to technical engagement DRQ was building part of this solution, consulted changes and served expertise.
- Established solution for issues tracking in enterprise scale using JIRA product; providing policies and release management drafts.
- Provided several times presales support in technology or software engineering area
- Exposed employer company as capable to handle modern IT trends e.g. being speaker on teleinfo’s conference on BPM and integration.
DRQ Enterprise Software House Krakow, Poland, Europe |
|
Position: Technical Leader, Senior Software Engineer and Software Architect | March 2004 – November 2004 |
Promoted to higher rank and moved from Development Division to Experts Division.
- Technical co-leadership in company scale — technology recognition and `evangelisation’, suggesting or providing trainings, enabling different software engineering solutions.
- Contributing in early phases of key or critical projects providing or supporting software architecture and design decisions.
- Self-determination of tasks according to company strategies.
DRQ Enterprise Software House Krakow, Poland, Europe |
|
Position: Task-dependent varying from Software Analyst to Senior Software Engineer and Developer | 1999 – March 2004 |
- Designed flexible processing flow model in XML format running on scalable and extensible architecture using either J2EE platform or Java threading model.
- Small starting set of features meeting customer needs, cheaper than competitive solutions available on the market.
- Skills used: XML, J2EE, Java, requirement analysis, GUI desing,abstraction thinking skills, invention (proposal of new coherent functionality).
Replacement for existing system. New version have to meets requirements of high extensibility, and custiomization using client’s personel:
- Created solution choosen by client from many competitors of auction.
- Designed architecture with clear extension points and customizable modules sketched around declarative programming (XSLT) allowing client flexibly modify most of processing pipelines.
- Co-designed detailed technical project in early stage of project life cycle.
- Skills used: UML, Java, XML, XSD, XSLT, JAXP, Design Patterns, GUI/web designing.
Large project divided into many stages of process completion; more than half of requested functionality is already developed, accustomed and maintained. System functionality is similar to BMC Patrol with more specific and customized system requirements:
- Co-created solution choosen by client from many competitors of auction.
- Co-designed general architecture including database and multithreaded system core with distributed agents.
- Co-programming system core leading team of 3 developers.
- Designed management web application/
- Re-designed and refactored system core according to requirement’s changes introduced by client.
- Skills used: C++, omniORB, lex/yacc, multithreading, Oracle, OTL, relational database designing, team management.
Middleware responsible for exchanging SMS data frames between service suplier’s software and SMS Center system. Gateways are mainly responsible for charging suppliers, gathering statistical data and controling use of SMSC functionality exposed outside company:
- Designed, coded and tested gateway using Nokia SMSC protocol, redesigned and applied changes to cooperating EMI-UCP gateway.
- Originally system had to be prepared as fast as possible for temporary service. I anticipated need of future extensions and unability of rapid system replacement. Under time presure using additional design efforts I prepared extensible system working for long time. It saved at least a month of work required to rebuild gateway.
- Skills used: C++, Oracle, OTL, Nokia SMSC protocol basis, EMI-UCP protocol basis.
- I have established CVS (concurrent versioning system) with global company source and documentation repository, established procedures and access-rights system based on ACL lists under XFS file system.
- I have done necessary trainings and I am still giving constant support in Change Management area.
- Versioning system decreased costs of elementary code production above 40%. System enabled better management, team cooperation, source maintenance and global recovery backups of stored source code.
- Skills used: CVS administration, ACL lists.
- Co-worked in designing, implementation and testing.
- Satisfied customer prolonged my outsource contract to six months to continue transfer of technical knowlede into different subtasks.
- Consulted many minor architectural decisions outside main project, especially in Oracle and C++ area.
- Used skills: Oracle, Pro*C, SQL, PL/SQL, C, C++, BSD sockets, BIC ISO base24 protocol.
ComArch Krakow, Poland, Europe |
|
Position: Software Developer | 1998 – 1999 |
- Part time contract parallel to technical studies.
- Large two-year financial project for banks and large companies.
- I worked in a fifteen-person group as a designer and programmer using Oracle Designer, Oracle Forms and Oracle Reports environment cooperating with Oracle 7.
- I created and shipped internal subframework enabling dynamic list-of-value bindings unavailable in this Oracle environment.
- I did many individual tasks as Windows NT developers server administration or developing small tools in C++ for internal use.
- Polish (native) – fluent in all areas.
- English – fluent.
- German, Russian – would need brush-up, unused since high school end.
- Master of Computer Science (with honors), AGH University of Science and Technology, Krakow, Poland, 2000
- Telecommunication and Computer Technician (with honors), Telecommunication Technical College, Krakow, Poland, 1995
- Silver Award of President of AGH University of Science and Technology, 1999
- Bronze Award of President of AGH University of Science and Technology, 1998
- Scholarship of Ministry of Education, award for best high school students in Poland, 1994