I like working on challenging problems of practical relevance. I have got over ten years of experience in software engineering research and development. I am very goal-driven, well-organized, and I consider myself a skilled programmer. I am a fan of pretendotyping, agile methods, and software modeling. Unlike many software engineers, I am not religious about tools; each language and technology has its application. I tend to pick the most suitable tool for a specific problem.
Currently, I am a Senior Software Engineer at MathWorks. I am interested in bringing software research, model-based software development, and functional programming into practice. I am developing a meta-modeling infrastructure and diagram editors for MATLAB and Simulink. Before joining the industry, I received a PhD degree at the University of Waterloo (2013). For my thesis, I designed and developed Clafer, a language for modeling and analyses of software product line variability. I also contributed to the specification of the OMG Common Variability Language standard proposal, and worked on example-driven modeling, an approach that systematically uses explicit examples for eliciting, modeling, verifying, and validating complex business knowledge.
Where do I see myself in the future? My long-term goal is to empower companies and individuals to apply model-based software engineering. I am open to the following careers: 1) industrial researcher, 2) software engineer, 3) business analyst, or 4) consultant. In any case, I am always looking for environments that require and stimulate creativity. I do not mind getting my hands dirty to implement a solution. Ideally, I would like the job to be location independent. I have got my requirements, but I have the potential to bring a lot of value and to deliver outstanding results on time.
CV and keywords
My CV is available in PDF format.
model-based software engineering, software development, software product lines, variability modeling, programming languages
- As a teenager I founded a group of Assembly language programmers and reverse-engineers.
- 6 years of experience with C++ and C (mostly as undergrad and currently).
- 6 years of experience with Haskell (mostly as PhD student).
- Practical experience with different paradigms: imperative (C, C++, Java, C#, Assembler), functional (Haskell, Scheme, ML), logic (Prolog).
- Experience with meta-programming, domain-specific languages, software modeling and verification (UML, Alloy, CVL, Clafer).
- Familiarity with microcontroller programming (Atmel AVR) and digital circuits.
Undergrad Projects (Warsaw University of Technology)
- Software for student satellites (PW-Sat and SSETI ESEO) and stratospheric balloons (BOBAS2). Programming in C for embedded systems. Software for On-Board Computer, Communications, Distributed Satellite Testing. PW-Sat was launched in February 2012.
- Final year project on Certificateless Cryptography (implemented in C++, prototype in Haskell). Code repo.
Research and Grad School (GSD Lab, University of Waterloo)
- Good understanding of Prolog and meta-programming. FSML project.
- Grad courses in programming languages, compilers, usability, software engineering, persuasive technologies.
- I understand the importance of usability. Course project.
- Research in software engineering (software product lines, language design, and requirements engineering).
- Design of CVL – upcoming OMG standard for modeling variability.
- Design of Clafer – a lightweight modeling language (implemented in Haskell). Code repo.
- Summer intern at Samsung R&D, Poland. Programming in C# and PHP. Work on a database application for classifying Digital TV streams.
- Twice, summer intern at Opera Software, Sweden. Programming in C++ and Java. Work on Bream – a proprietary language for UI programming.
- Senior software engineer at MathWorks, USA. Development of a meta-modeling infrastructure.