Michał Martyniak's profile picture

Michał Martyniak

Computer Science graduate |
Machine Learning adept |
Python/Ruby developer |
Multi-instrumentalist

Current Projects Recent Projects Contact me on LinkedIn Codewars badge

About me

I am a developer from northern Poland with Master of Computer Science degree, self-driving cars passionate, currently considering a PhD career. Focusing mainly on Deep Learning, especially in NLP (language modelling, voice/chatbots), delivering clean and modern code, leveling up my leadership skills. I consider myself as a person with wide tech knowledge, following news day-to-day just for fun.

Work Experience

NLP & backend developer (Python) - VoiceLab (July 2019 - now)

Language modeling, voice/chatbots engineering

Update is coming...

Architect & Lead backend developer (Python) - TensorHive (May 2018 - now)

Working remotely, contributing to open source project


Tools:
  • Python 3.5+ (pytest, Flask, SQLAlchemy, Alembic, parallel-ssh, configparser, flake8, type annotations, decorators, properties, lambdas)
  • Swagger UI/OpenAPI (interactive documentation of endpoints)
  • Git with GitFlow strategy
Tasks:
  • Rewriting project from scratch using modular architecture and REST communication
  • Incorporating parallel-ssh library for multi-node communication
  • Implementing GPU monitoring module using custom-written nvidia-smi parser
  • Adding GPU reservation mechanism with resource protection
  • Introducing automated tests, database migration etc.
Workflow:
  • Adding issues on Github, using Kanban board, Slack for communication
  • Encapsulating features into pull requests with extensive description (changes and implications digest, screenshots, how to run/test changes)
  • Code review and refactoring sessions
  • In-person meetings for resolving advanced problems and discussing further development
  • Markdown everywhere (much better expression capabilities, significantly improves readability for team members)
More info: TensorHive repo on Github

Ruby on Rails Developer (full-stack) - Cirrus (May 2017 - Sep 2017)

Developing an app for a business client.


It consisted of 4 important parts:
  • Dashboard for administrators - Web app for managing users and their access, additionaly WYSIWYG editors, email sending, ACL logs
  • Web interface for clients - displays responsive, platform-specific content (iOS, Android, PC) prepared by an admin in WYSIWYG editor
  • Linux daemon - my own iptables manager written in Ruby, which controls the life of every rule and talks to the database periodically
  • Database project

I've learned a little bit about:
  • How to containerize Rails applications with Docker (docker-compose), how neat it is in deployment and maintainance
  • Managing my time
  • Customizing gem's source code
  • Ruby Metaprogramming
  • That automating my work really matters
  • What real-world clients might expect from the end product

Apprentice Backend Developer, mainly in Ruby on Rails - Cirrus (Jul 2016 - Sep 2016)

Working on web interface for managing e-mails caught in a Spam Trap, analyzing and profiling Perl scripts, digging around PHP code.


I've learned a little bit about:
  • SMTP
  • Bash and Perl scripting
  • My fear from PHP syntax

Apprentice - Cirrus (Jul 2015 - Sep 2015)

Working in small team with peers, trying to make a web module for prehistoric Rails 3 and jQuery.


It was looking prety good, even working, but was difficult to merge into original codebase. Additionaly we were working with refactoring hardware's firmware written in C. I've learned a little bit about:
  • Git
  • MVC architecture
  • Using rake, Active Record, templating html and much much more

More about me

Favourites: classy, jazz and soul music, podcasts, Linux (not popular distros included), buying/playing instruments and recording new tracks.

Musical background: cello classes in music school as a kid, trombone practices in orchestra as a teenager. At some point I used to have 7 instruments at home (now it is 4). Check out my SoundCloud profile.