Weare happy to announce Richard Dodd is joining us at Rayon! Richard is from England, adding a new country to our international team. Richard has just finished his Ph.D. in health informatics, and we are very excited to have him onboard. We had a chat about life, work, and joining our company…
Of all places, why join Rayon?
R.D: I’ve just finished working on my Ph.D. and am looking to move into the industry. Rayon sits at the intersection of a number of things I consider important for the next stage in my career. For starters, the project uses a mixture of web technologies and the Rust programming language for its stack. I’ve been a big lover of the Rust language since around 2015, but this is my first chance to use it professionally, something I’m really excited about. I have worked on a number of projects using Rust, including contributions to some large projects, but I’m looking forward to seeing if it delivers on its promise to make team programming fearless. Before returning to academia, I worked for a company making web applications (using the ancient ExtJS3, I can almost feel the nostalgia rush through me as I type), so I’m also looking forward to leveraging my existing skills in this area and building on them.
I’m also really excited to work in a sector that is about creating new things. Architecture and floor planning are all about creatives taking a blank canvas and using their experience and skills to change it into something people have an emotional connection to. The language Rust does have an association with certain sectors, but there are employers out there like Rayon doing exciting and socially valuable things with the language.
I’ve only been with the company a few days at this point, but I have already been made to feel very welcome by the genuinely warm and relaxed atmosphere. Rayon proves that you don’t have to create a stressful environment to have a productive one!
You are joining Rayon as a Senior Software Engineer. What specifically interests you in software development?
R.D: I’ve actually given this question a lot of thought, especially over the last few years while I was working as a researcher. I think, fundamentally, it comes down to a need to build and make things. I believe that as humans, we have a number of basic needs to feel satisfied and happy, and one of the most positive and productive of these is the desire to craft. I think there is a stronger link between software engineering and what people traditionally think of as engineering disciplines, for example, building bridges or the internal combustion engine. We all have tools that we use, but we also take time to improve our tools. We build incomprehensively complex machines, whether virtual or real, out of simpler tractable components. We often have to go in and understand someone else’s work when it stops working, and we often spend an inordinate amount of time trying to work out what they were thinking!
Most importantly, we make things: things that exist at the end of our work that weren’t there at the start. I think this is why I find software development so satisfying.
Besides work, what do you like doing in your free time?
R.D: I come from the UK, and I consider myself very lucky to live in a rural part of the country. I like to get outside whenever I can, even when it rains (it does a lot of that). I also like playing computer games, especially those that have interesting settings or mechanics. For example, one game I’ve played, Proteus, has you walk around a very brightly colored psychedelic island where the only goal is to explore and see how the ambient music changes as you move. Or Spiritfarer, a game that uses management sim mechanics as a frame on which to hang a tender and kind study of death and those left behind. Everyone knows that video games are a huge industry, but people sometimes don’t realize how varied and innovative it can be.
I also love music and get involved wherever I can, whether it be singing or playing. Unfortunately, working on my Ph.D. became all-consuming, but I’m looking forward to recovering my work-life balance at Rayon and am happy to report I’m already making progress.
What’s the best thing you’ve ever built?
R.D: This is a very difficult question to answer because of the difficulty of defining ‘best’ in this context. Does it mean the most impressive thing I’ve built by myself because it would probably not be that impressive. I do get some hedonistic pleasure from having crates on crates.io with very high downloads, but these tend to be very simple crates that do one thing well, that are then used by the larger project in the Rust ecosystem. Just going by all-time downloads, my most-downloaded crate simply takes an iterator of Rust characters (`char`s) and replaces `\r\n` or `\r` with `\n`, called `normalize-line-endings`. But I’m much more proud of the work I’ve done that hardly has any traction, like the `debug_parser` crate. This crate makes an attempt to parse the output of `fmt::Debug`, with graceful fallback when the format doesn’t match our expectations. I use it to convert massive debug output into JSON, which I can then explore in a viewer that allows collapsing objects and arrays I’m not interested in. I think it’s much more useful than the work I’ve done with millions of downloads, but it has hardly any.
I think I probably get the most pleasure though, from contributing to other projects. It’s harder work than doing things by yourself — you have to engage politely with people that may reject your contributions. But when you do get work accepted, it can have an outsized impact, improving the tech that many other people are using. I’d group my (mostly small) contributions to `wasm-bindgen` and `rustc` among these.
And beyond this, I’m still happy about spending time reinventing the wheel in ultimately abandoned projects, because I learned a lot and had fun making them. The process of programming can be satisfying, even if there is sometimes nothing at the end to show for it.
Rayon is hiring, check out our jobboard!