# RC Application What they are looking for https://www.recurse.com/what-we-look-for ## Links ### Instagram [@yellowdrypaint](https://www.instagram.com/yellowdrypaint) (art work) ### github [mirabellensaft](https://github.com/Mirabellensaft) The pinned repos contain personal projects as well as a selection of training materials that I wrote or co-authored. ### twitter [@mirabellensaft](https://twitter.com/mirabellensaft) ### LinkedIn [Tanks Transfeld](https://www.linkedin.com/in/tanks-transfeld-989490151) ## Code CracklePop ```rust! // To run the CracklePop open the following link to the // Rust Playground and hit the run button. // https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=092a0772d4915b04b230ac2816d7b294 fn main() { for i in 1..=100 { println!("{}", crackle_pop(i)); } } fn crackle_pop(number: i32) -> String { if number % 3 == 0 && number % 5 == 0 { format!("CracklePop") } else if number % 3 == 0 { format!("Crackle") } else if number % 5 == 0 { format!("Pop") } else { format!("{}", number) } } ``` ## Please link to a program you've written from scratch. [SVGtoCSS](https://github.com/Mirabellensaft/SVGtoCSS) Is a parser that reads two svg files and transforms them into an animation from CSS clip-paths. It's my first project and up to date still the most complex that I wrote, algorithm and logic wise. I would work different today, eg. use JS Canvas as output, but I was resourceful with the things I knew at the time. Also, it's just pretty :D click to see the sample: https://transfeld.net/cssMagic/ [SCD30](https://gist.github.com/Mirabellensaft/e9ff74cfb8bff2ca6f8ed7e191c72b47) is a device driver for an SCD30 CO2 sensor, one of the earlier pieces in my Rust career. It helped me to learn how to implement methods for types and how to read device datasheets. [TicTacToe](https://github.com/Mirabellensaft/TicTacToe) is a current example in Rust. I wrote it with a focus on code organisation and readability, to experiment with linters (make everything Rust 2021 compliant) and to try out the docs generation features. To look at the docs, follow instructions in the repo's readme. ## What is the most fascinating thing you've learned in the past month? My partner and I went to the local museum of natural history. The first section was displaying dinosaur skeletons. I noticed that a lot of them had a bone in a place, where I did not expect a bone to be: It was an elongated part of the pelvis, sticking right out of their behind. Reading the descriptions of the exhibition pieces, it became clear that this bone was the anchor point of the muscles of the backside of the leg and the extension allowed for a more effective muscle contraction, making this dinosaur unbelievably fast. This opened several questions that I researched later that day: 1. What is the analogue structure in human skeletons? 2. Do animals today have this bone? As I have never noticed one like this. The bone in question is the Ischium. Humans have it, and it's the part of the pelvis we sit on (seat bones). It's only an elevated knob compared to the dino version. Fast land animals have an extended Ischium, but even in cheetahs who run extremely fast, it's nowhere near as prominent as in the two legged dinosaurs. Ostriches have it, but so do other birds. ## What do you want to be doing in two years? * Work in a field in tech where art and embedded programming intersect. * Shift the focus from writing about a piece of code to actual coding. * Work in a company that values diversity and inclusion. * Bonus: Being paid for my artwork. ## Why do you want to attend RC? How would attending RC be different than working on your own? - I want to change my job from writing mostly training material for the Rust programming language without having substantial experience in writing software in it, to a job with a focus on software development. This includes figuring out what field exactly I want to work in next and what skills besides programming may be useful to land a job there. - I am a self-taught programmer and I also have academic degrees in chemistry and art, so I know how to learn on my own. I love about autodidactic learning that I can start at the exact point where I am at and can dive in as deep as I like, using only my curiousity as the driving force. The downside of doing this on my own is that I am on my own. And I have had enough of this. I long for exchange in a diverse community, that is not made up of 95% young and middle aged white men. I want to feel the momentum of a group. I want to connect to people over our fascinating projects. I see us helping each other through challenges, and challenging each other. We're colaborating on projects and celebrating break throughs in them as well as in knowledge. We're helping each other to be accountable. We're exposing each other to knowledge, ideas and approaches, that we wouldn't have on our own, because we didn't even know they existed. We're gaining different perspectives on our own work through exchange with others. And we're forming friendships and networks that go beyond the time of this batch. ## What would you like to work on at RC? I want to become more proficient at writing larger programs with a more complex logic in Rust. Writing training material left me with a focus on small demo programs and a lack of understanding how Rust's features work out in larger code bases. I also want to learn more about general concepts like maintainablity and design patterns and become more fluent in algorithms. I want to do this by working on generative art using my pen plotter. This intersects with two passions of mine: painting and drawing very analogue and embedded programming. Some possible approaches: - learn more about algorithms in general and explore how to use them in generative art - develop a framework in Rust that - interfaces with the pen plotter's motors directly, skipping the process of first generating an svg file. The image created will thus only exist as a paper artifact with no digital version of it generated. - provides presets for different writing implements - includes a "debug mode" that does have an svg output to develop the image generating algorithms without wasting paper. It's also a cool feature when collaborating with others remotely. ## Describe your programming background in a few sentences. I learned Python with a book and a CS course from MITx in 2017 while recovering from a burnout from a job as an art and chemistry teacher. I wrote two projects on my own to apply what I learned and to deepen my skills. I was offered a position at a Rust consultancy and training company in 2019. My first task on the job was to learn Rust in a self directed way on projects that I was free to choose: I built a CO2 monitor. I was a junior on two client projects involving embedded Rust. Appart from that I worked in the company's sales team and lead the training team. For the last two years I mostly wrote training material for Rust with a focus on embedded Rust. ## Have you worked professionally as a programmer? yes ## Do you have a Computer Science degree or are you seeking one? Both no. ## What other commitments (work, life, family) would you have during your batch? I have my nesting partner's support to participate in the program. ## Outtakes - I am a self-taught programmer and I also have academic degrees in chemistry and art. I love about autodidactic learning that I can start at the exact point where I am at and can dive in as deep as I like, leaving the parts at the sides that don't interest me, or where I don't see the point yet, using my curiousity as the driving force. The downside of this is that on your own, you can only learn what you know that exists. RC encourages the needs-based and curiousity driven way that I apply when learning on my own but includes being exposed to things I can't know through a community of fellow attendees. While my curiousity alone is often enough, to pull through, social commitments are my most important mechanism of accountability.