blog/content/pages/about.md

109 lines
7.7 KiB
Markdown

---
title: "Heya !"
date: 2019-04-08T12:51:40+01:00
draft: false
---
My name is Cyryl and I hope you're having a great day !
## Interesting random tidbits about me
I am [running](https://blog.cyplo.net/posts/2018/05/pair-with-me-on-rust.html) remote pairing sessions, helping people with Rust.
My recent focus is [adding fuzzer](https://twitter.com/cyplo/status/1094606119421521922) infrastructure to their projects.
I started a [blog post series](https://blog.cyplo.net/series/rust-testing-tricks/) on testing in [Rust](https://blog.cyplo.net/categories/rust.html) where I share the tricks I've learned.
I was in both leadership and individual contributor roles, I have respect for all sides involved in the process.
I like testing, I taught various aspects of TDD in an apprenticeship course.
**Head of Engineering: Core** at Form3, _May 2019 - now_
I am responsible for 6 engineering teams, an architect and an SRE Lead. We are creating inter-bank payment distributed systems in Go and Java. Each team has its own technical leadership structure and I oversee those leaders myself. I work closely with product leadership on the vision of the shared services at the organisation and with other team leads and section heads on execution planning. I help with establishing standards across multiple teams while providing architectural and technical support. I review the more sensitive code & documentation contributions. I guide people through their growth as team leaders and individual developers alike.
**Software Engineer** at balena, _October 2018 - May 2019_
I worked remotely on **Rust** crates compiled into NPM packages through the power of **WASM**.
As all of the above is on the bleeding edge - I find, report and fix bugs throughout the ecosystem.
**Software Craftsman** at Codurance, _January 2017 - October 2018_
Helping client teams grow - working within software teams and teaching technical concepts as well as improving the process.
Running workshops (e.g. Legacy Code Retreat, advanced git, **TDD**).
Running **Rust** pairing sessions and intro to Rust workshops.
Facilitating open-space conferences.
Teaching at the apprenticeship programme.
Projects:
- Transportation route planning software for a big retailer, using a graph database (**Gremlin/Apache Tinkerpop**) in Java. Managed deployment to **AWS** via **Terraform**.
- Transaction consolidation software for an investment bank.
- Electronic circuit simulation software for a startup.
**Consultant** at Infusion, _June 2012 - November 2016_
Writing code is still where I spend most of my time, and happily so.
I do that in **Java** and **.Net**, sprinkled with some **C**, **C++**, Python, bash and powershell I gather requirements, talk to the clients, other engineers, figure out solutions together. My particular specialty seems to be taking over legacy code bases and making them shine. I am responsible for a small team of developers.
Projects:
- Pulse - a product for mass remote software installation and monitoring. Used, among others, in demo kiosk installations, phone retail shops and in-flight entertainment systems. Writing server and client code. Largish system working mostly on the backend in .Net, standing on Azure. I'm helping here and there, with the architecture and sometimes doing changes to our **Android** client code as well.
- I've helped build a **distributed** solution for insurance cost calculation for Metlife Japan. Mostly Java, some IBM mainframes and occasional C++.
- I've worked for other financial institutions on distributed software for risk exposure analysis. Mostly .Net, some C++, large in-house computation farms involved.
**Senior Software Engineer**, Power Media S.A., _February 2011 - June 2012_
I was asked to return to Power Media by the head of the whole department, this was quite cool ! I've helped recruit more people and was one of the developers working on the system for TV materials storage. The system was written in **C#**, but I've also took a look inside an **Erlang** one and a one in **Obj-c** as well, from time to time. I've convinced the company to [open source](https://github.com/powermedia/PowerMedia.Common) the core libraries used.
**Mobile Games Developer**, iNTRES/Scoreloop, _December 2009 - February 2011_
I was a part of a team that was tasked with developing a cross-platform, pure C library that provided matchmaking, ladders and other networking capabilities to mobile games, **Pro Evolution Soccer 2011** among others. We've used C89 as the base language.
**Lead Developer**, Power Media S.A., _June 2007 - December 2009_
This was my first experience as a leader. Despite this we've managed to build the new [travelplanet.pl](http://www.travelplanet.pl/) - a website for the biggest trip broker in Poland. This was a .Net job and involved some quite heavy server machinery. Around **60 different data sources** were involved. In the meantime I've also helped with growing the **Erlang** team and got my hands dirty with proof-of-concept **low-level** Mac **PowerPC** programming.
**Software Developer**, Power Media S.A., _June 2006 - June 2007_
My first "real" job ! Maintenance on the in-house systems written in Java. Slowly I got into client-facing project as well. Java, Webobjects.
## Education
**Wrocław University of Technology** 2005-2007
## Books
I am one of the technical reviewers for the "500 lines or less" book, a new entry in the [Architecture of Open Source Applications](http://aosabook.org/en/index.html) books series.
I helped to shape the chapter on Paxos there.
## Talks/workshops - ask me to give some !
The links provided are for the slide decks.
- Working with legacy code utilizing golden master tests
- Fuzzing in Rust
- Mastering Git
- Legacy Code Retreat - running a full-day workshop on test-driving changes in legacy code.
- A secret to secure software (ssshhh it's TDD)
- ["Conferences you did not know existed and now you know you just need to go to"](https://blog.cyplo.net/posts/2016/03/13/conferences.html)
- "Languages are communities" - impromptu talk about how communities are the most important thing when choosing your programming language.
- ["Tor and what it's good for"](https://github.com/cyplo/talks/tree/master/tor_for_beginners)
- ["Erlang for the .Net people"](https://github.com/erlang-wroclaw/erlang_tech_night) - introduction to Erlang with some live coding by me and my friend Fabian
- ["Anatomy of a debugger"](https://prezi.com/hzvnsznfkgwj/anatomy-of-the-debugger/) - very high-level overview of how debugging works
- SMD soldering
- Start your journey with 3D printing
## More to read
I like building tools. Be they physical or software. Something that lasts.
I like teaching - allows me to understand topics in more depth.
I'm good at understanding whole worlds of interactions within software projects.
The people and their needs and then the system architecture, code itself, its execution. Because of that I'm sometimes slow to comprehend new things. I really like trying new things. I like **Rust** quite a bunch and am trying to spread that love - I am a contributor to the core Rust projects. I run my own infrastructure - email, blog, backups.
I ask a lot of questions. I like to be in the understanding of the value of my work. I think there's a big value in sharing. I am really into the open source movement. I like **helping people**. I like electronics. I've assembled a RepRap. I've built a sun-powered backup server. I'm learning PCB design in **KiCad** and CAD via Fusion360. I like debugging. Electronics and software. I have a **CNC** router. I like board and RPG games. Rock climbing. Cycling. Other life activities.
Curious reader might want to follow my blog at [blog.cyplo.net](https://blog.cyplo.net/)
[Email me](mailto:hello@cyplo.net) at hello@cyplo.net - I'm happy to have a chat with you !