Hi, I am Mara Sophie Grosch, a software developer and IT person from Chemnitz in Germany. Lots of people call me (Little-)Fox instead of my legal name. I love free software (and am a member of the FSFE) and am quite a bit chaotic (also in a CCC-membership way).

Born in 1994, I know some of the newer technologies while not forgetting or ignoring the older things. I love how UNIX is held together by perl and shell scripts, but I also love coding in golang. I value the simplicity of SysV-Init but can also leverage the features of systemd (and like that we finally have declarative configuration for services and co instead of programs we copy for each service, modifying it and having metadata in comments).

In the past years I learnt a lot of technologies and I am still continuing to learn. Learning a new programming language probably isn’t a real problem for me.

Given the technologies I know, I always have the right tool at hand.

The last big things I did on a professional level

Anexia (since October 2021)

  • Kubernetes controllers to gracefully rotate worker nodes with data stored locally on them
    • the data specifically being from etcd instances for customer clusters
    • now the “storage-worker” nodes are managed by machine-controller just as any other node
    • one controller initializes newly added nodes to be used by openebs-lvm
    • another controller sees evicted pods, checks if the node is in the process of being deleted and deletes the PV(C)s, allowing the pod to be scheduled to another node, restoring the data from the other instances that are still running
    • great care is taken to ensure everything is healthy and as-expected before deleting anything
  • reworking (parts of) our GitOps workflow, leveraging Flux features to not need a single repository per cluster anymore
    • different cluster types now with shared manifests - every type having a base that activates “apps”
    • dev, stage and prod now with shared manifests - every environment just configuring the “apps” with cluster-specific data (domains, IPs, worker specs and replicas, ..)
    • maintaining software running in our cluster is now really comfortable
    • migrating to this was (well, for some things still is) quite painful, as all the clusters drifted apart from each other due to lots of copy&paste going on in the past .. which was the reason to rework this workflow
  • taking over responsibility for our Kubernetes as a Service product as Technical Lead Kubernetes Platform
    • includes product design, feature and bug prioritization, customer communication, working on handing the service infrastructure to our Ops teams for 24/7 on-call (and temporarily being on-call myself together with my team)
    • sometimes I still have the capacity to code something!
  • building a small GitHub-pages based thing for Go package vanity URLs
  • taking on our Kubernetes cloud-controller-manager, refactoring the LoadBalancer reconciliation for more performance, less code and (I think) easier to understand logic
  • refactoring the Go bindings for our API to reduce code duplication a lot while making it nicer to use as well

CARNET GmbH (December 2018 - April 2021)

  • internal tooling for incident management
  • built the ability to work from home via VPN and Gitlab, teaching how to use it effectively
    • a year before the pandemic hit - surely was a huge help
  • Built an OAuth2 server implementation using an existing authentication system as backend, allowing more security in modern web applications compared to the old solution in use
  • various enterprise web applications, mostly for a big automotive corp with two letters

Schaeffler Digital Solutions (March 2015 - November 2018)

  • building kubernetes clusters on bare metal, on-premise infrastructure
  • implementing CI/CD pipelines (with and without kubernetes/docker)
  • Started adoption of Kubernetes in the company and be the “go to” person for it
  • Built an OAuth2 server implementation for our central services with extendable authentication mechanisms

Where I got my qualifications from

  • Cloud Platform Engineer at ANEXIA since October 2021
    • promoted to Technical Lead Kubernetes Platform in September 2022
  • Software engineer at CARNET GmbH from December 2018 to April 2021
  • Freelance software developer since 2018 in the hours after my main job @autinity systems
  • Software developer at Schaeffler Digital Solutiuns (fka autinity systems) from March 2015 to November 2018
  • Software developer at Fraunhofer IWU from 2013 to 2015
  • Apprenticeship IT specialist, software development (“Fachinformatiker Fachrichtung Anwendungsentwicklung”) at Fraunhofer IWU from 2010 to 2013
  • Lots of self-learning

Skills

(Programming) languages

  • German, English, some Finnish (Suomi on kaunis kieli)
  • C, C++
  • C#
  • Java
    • but I do not really like it
    • Scala
  • Perl5
  • Go
  • some x86 assembly
  • TypeScript, JavaScript
  • HTML, CSS, SCSS
  • LaTeX
    • enough for letters with fancy designs
    • not enough for operating systems, I write those in C ^^

Technologies

  • Kubernetes
    • also containers in general, be it Docker or any other tech (I use cri-o for my personal infra and containerd at work)
  • Android
  • Angular (2+)
  • Ansible
  • Linux (on a very advanced level)
  • REST, OpenAPI, Swagger
  • MySQL, MariaDB and PostgreSQL
  • Gitlab CI/CD
  • OAuth2
    • I can explain how it works to you
    • (tried with lots of colleagues)
    • implicit and authorization code flows
    • also the OpenID Connect flavor, so JWT and id_token is nothing new for me either
  • Prometheus
  • Grafana

Low-level stuff

  • Enough knowledge to build interoperable file formats and networking procols
    • with a spec people can understand and implement
  • UEFI (amd64, hopefully soon RISC-V) development
  • OS development, I write my own OS as a hobby
  • Firmware development on 8 bit AVR MCUs (I love the XMEGAs, too bad the community is basically dead …)

Non-IT things

  • I actually listen to other people
    • trying to understand their viewpoint and problems - technical and non-technical
    • only “complaining” about processes after I understand their reasoning to exist in the first place and (well, mostly) only if I have ideas how to improve them
  • Sharing my knowledge and training people (licensed to instruct “Fachinformatiker” apprentices in Germany)
  • prioritize work units (tickets, issues, whatever you call them)
    • both based on internal urgency and customer priorities

Other IT things

  • Full-stack development
    • prefering backend
  • Automating software build, test and deployment
  • Microservice architectures
  • I know most[citation needed] of GnuPG and TLS
    • cannot tell you how the algorithms actually work, though
    • but can tell you the difference between symmetric and asymmetric encryption

What I prefer to do

  • Work on clean or new projects
    • who does not?
  • Give advice on architecture or influence directly
  • Help create something great and meaningful

What I prefer *not* to do

  • Work on legacy code most of the time
    • of course sometimes you have to

What I would like to see in a new job

  • fair payment (for all your employees, i.e. no gender gap)
    • I still have to pay my bills, though
  • allow me to use the software I’m actually efficient with (i.e. Debian Testing, Vim, sway, …)
  • flexible working hours
  • work from home (required atm if you are not around Chemnitz)
  • BYOD or good equipment at work