Curriculum Vitae
Introduction
I have over 20 years of experience building commercial software. I am passionate about the craft — a day without learning something new is a day wasted. Since teaching others is the best way to learn, I eagerly share my knowledge. Delivering results matters to me just as much as the craftsmanship of the execution.
About Me
Father², husband, bookworm, programmer, conference addict. Don Quixote fighting entropy. Delights in contradictions and humor. Believes in chance. Beer philosopher. Occasionally goalkeeper.
Contact
- Email: orientman{at}gmail{dot}com
- LinkedIn: Marcin Malinowski
- Blog: https://blog.orientman.com/
- GitHub: https://github.com/orient-man
- Twitter: @orientman
Programming Interests
My interests in recent years have focused on several themes: Functional Programming, Event Sourcing & CQRS, Domain-Driven Design, Software Craftsmanship, and Software Architecture.
Education
- Master's degree in Computer Science and Bachelor's degree in Mathematics from MIM UW (Faculty of Mathematics, Informatics, and Mechanics, University of Warsaw)
- Thesis: "Indexing and Searching Images by Content Using Wavelet Theory" (i.e., Google Reverse Image Search before Google)
- Books
- Conference addict: DevDay, BuildStaff, CraftConf, 33degree, GeeCON, LeetSpeak, MCE, 4developers, GET.NET...
Talks
I have been giving talks at work for several years, but only recently took on the challenge of public speaking:
-
devWarsztaty — 2 sessions (one paired with Gutek) — selected audience feedback from surveys:
"Awesome. Very inspiring"
"Best session today"
"Short, to the point, with a solid dose of humor. Great ;)"
"Amazing concept of competition between two people"
-
4developers 2015 (slides, video) — highest rated session in the .NET track
-
.NET user groups: Bialystok, Warsaw (video), Wroclaw, Lodz, and Krakow:
"I already hosted him with his functional programming talk at the Bialystok .NET group, so I knew what to expect — he crushes minds" — Maciej "Procent" Aniserowicz
Earlier talks and internal trainings covered topics including: design patterns, Clean Code, Git (blog post), refactoring legacy code (blog post), JavaScript (slides), jQuery and jQuery UI (slides).
Experience
Allegro Pay (Feb 2020 – Present)
Principal Software Engineer (Nov 2022 – Present)
Senior Software Engineer (Feb 2020 – Oct 2022)
FinAi (Apr 2017 – Jan 2020)
Senior .NET Developer
- Rules Engine — designed and implemented a configurable rules engine for credit scoring and decisioning, enabling business analysts to define lending criteria without developer intervention
- Workflow State Machines — built workflow orchestration using state machines to manage complex multi-step loan processing pipelines
- Biometry Verification — integrated biometric identity verification into the lending platform for KYC compliance
- Back Office — developed internal back-office tools for loan portfolio management and operational monitoring
- Bank Statement Analysis — created automated bank statement parsing and analysis module to streamline income verification
mBank (2015–2017)
IT Expert, Application Portfolio Development & Maintenance Department C
- FxPos — foreign currency position and pricing engine: designed and implemented a real-time system for calculating and managing FX positions and pricing across the bank's trading and retail operations
PIĄTKA SPÓŁKA JAWNA (2003–2015)
A small company (15–20 developers, many of them MIM UW graduates) with 1 major client (PGNiG and subsidiary companies). Main product: a billing system serving 3.5 million gas consumers.
Tech Lead — Pincasso.NET Project (2011–2015)
The Pincasso.NET billing system gradually replaced the company's previous product and was designed to serve 3.5 million gas consumers.
- Team of 6 developers (+2 remote), plus a dedicated QA team
- Technologies: C#, ASP.NET MVC 4, JavaScript, Oracle...
- Automated testing:
- 3K+ unit tests
- 99% business layer coverage
- Integration and UI tests
- TDD
- Continuous integration (TeamCity, WebDeploy)
- Weekly retrospectives
- Mutual code reviews
- Weekly short demos of new features or system changes
- Led by the QA team serving as "product owner"
- New releases in 2-week cycles
- Regular training sessions led by team members (e.g., chapters from "Clean Code")
Lead Developer — Sprzefak++ Project (2003–2015)
Invoice and cash register management system.
- Principal author
- Team of 1–3 developers
- 100K lines of C++ code
- Technologies: C++, MFC, PervasiveSQL, Oracle, Boost, NSIS, XML, XSLT, fiscal printers, and many more
- System in production for 11 years
Selected Other Work (2003–2011)
- Internal frameworks:
- UI controls for ASP.NET WebForms / MVC, JavaScript, MFC
- Micro ORM (dictated by the need to support an "exotic" database)
- Documentation tools and processes (Doxygen)
- Technical architecture and UI for the CBO system (ASP.NET WebForms, Oracle)
- Integration projects including SAP integration using WebSphere ESB
- User training and product demos
- Linux and Windows server administration:
- Backups
- SVN / Git
- CC.NET and TeamCity
- Issue trackers: Trac, Mantis, Bugzilla
- Mail and FTP
Co-Founder — Konsorcjum Progres (2010–2014)
Specialized Diagnostic Platform
A platform for building tests, constructing diagnostic tools, and conducting research and result analysis (including tests for drivers).
- 4 developers
- Collaboration with the Military Institute of Aviation Medicine
- Technologies: C#, ASP.NET WebForms, Adobe AIR, SQLite
Consultant — Empolis Polska (2002–2003)
- Participated in knowledge management projects
- Developed applications on the J2EE platform in a Sun Solaris environment
- Conducted trainings
Consultant — McKinsey & Company (2001)
- Restructuring project for Telekomunikacja Polska SA
Other Independent Projects (selected)
- mCRM — a mini CRM (2 deployments, ASP.NET WebForms)
- Application for collecting and analyzing results of HIV therapy research for the Medical Academy (MS Access)
- Application for cataloging and analyzing samples of thermally treated materials for the Institute of Precision Mechanics
- Online store dobraoferta.com (PHP/JavaScript)
- Server administration for TOMS (Windows NT, Linux, Novell, Samba)
