The people who use our boards.

302 interviews since 2018

Soledad Penadés

Software Engineer

Who are you, and what do you do? What do you like to do outside of work?

Hello! I’m Soledad Penadés, although most people know me as sole, and sometimes I’m also known as supersole.

I studied computer engineering, and I have worked in a number of roles, because if I’m one thing it is curious. I’m interested in many things!

I started building video games and websites, then mostly websites only, but with added front-end coolness with Flash (ActionScript 3 was very flexible and very fun).

Then I built Android apps, but the developer tools and the whole process was a bit frustrating for me: It was slow and kept crashing whenever I wanted to do Cool Stuff (Note: for me, ‘cool’ means real-time generated, hopefully interactive, graphics and audio).

Roughly around the same time HTML5 had been released–and along with modern CSS and JavaScript—was turning the Web into something that you could make Really Cool Things with, and I thought it was a bit futile to have to port the same thing to multiple platforms, i.e. iOS, Android, Blackberry, you name it… when you could write it once for the Web. Plus it was way easier to get it in people’s hands by giving them a link, no need for any “store” of any sorts, etc.

Not only did it feel like a waste of human potential, but I felt that as a single developer or a small studio there’s no way you could compete in the mobile development field, let alone in multiple platforms, if you wanted to build interesting apps—it is just not economically feasible. The testing consumes all of your time, and there will always be another strangely configured device from a vendor you’ve never heard about that misreports their capabilities and crashes, and you get unfair one-star reviews (this is more of an Android problem). Of course it’s different if you use Apache Cordova and build apps that are more like shells around a browser, like text-heavy apps. But I wanted to do more than that.

So I set Android aside and started building things with Web technologies again. I made a lot of WebGL, webcam, and Web Audio things that you could interact with… and I was so driven that I even worked at Mozilla, first getting people excited about building cool stuff for the Web and for mobile phones using web technology (i.e. Firefox OS), and then making Firefox’s developer tools more reliable and capable.

Then I decided to do something quite different and veered into the intriguing world of ‘fintech.’ I’ve worked in companies that facilitate payments for their customers in one way or another for the last few years, and I’ve also been managing and leading teams, so that’s been another thing I’ve learned about.

At heart, I just really find computers and the things they enable are truly fascinating, even after all these years!

You might find yourself in a bit of a rut if you always do the same thing. But I always aim to find something that gets me all curious and excited again, either by learning something entirely new or by bringing something I learned into an slightly different environment.

For example, when I learn a technique about refactoring in a compiled language, my mind will probably get ahead and think of how to apply this to JavaScript. Or going in the other direction. For example: Have you ever asked yourself, how do dynamic languages work, and how would you build a similar interpreter in a compiled language? etc. I’m always going back and forth between what I know, asking myself questions and what-ifs, and trying to fill in gaps and connect things together.

One of my big interests is music, both listening and making it. I grew up in an area where either you’re a musician or your friends are musicians; music is in every ceremony, and there are special songs and tunes for each occasion and festivity all through the year, so music is very important to me. I didn’t get any real formal education in music, but I had a small CASIO PT-100 keyboard, which had six notes of polyphony, so I taught myself basic chords with that. A few years later I also taught myself to play Spanish guitar, as I was intrigued by the guitarists in the choir I was singing at—I was very happy that I could cover a couple times when they couldn’t turn up! And that same year I discovered that I could also make music in a computer! And it took off from there.

I also love discovering interesting music, and I can spend long “research periods” where I hear about an artist or song then I find they also did something else with another artist that I like, and I go and listen to it and next thing you know it’s 3:00 a.m. and I’ve listened to the whole back catalogue of the artist including extra-official white-label/bootlegs!

I’d say my other main interest is food, both eating out and cooking at home. I often make Valencian/Spanish recipes but with ingredients that are available in the UK. I frequently try to vegetarianise or even veganise things as a challenge.

Soledad Penadés's diagram about steaming bread
Soledad takes bread baking very seriously

I keep a blog where I document what we eat and drink (and where) for future reference.

  • With things like A/B/C/D tests to reverse engineer recipes, it’s imperative to make a note of the outcomes, so I can repeat the experiment;
  • Once you develop a successful recipe, of course you want to share it with your friends. Sending them the URL to a post is much better than text messages that they lose when they change phones!
  • Also, restaurants in London open and close so quickly, and it is easy to forget where something was and what it was like unless you make a note. So yes, I am that person that takes pictures of her food and then writes about it in an exhaustive level of detail.

Soledad Penadés's bollos de Sant Blai
Soledad applies her analytical mind to sweet, crumbly St. Blaise's buns

Other activities I’m interested in: knitting (somehow freestyle) and sewing (not so freestyle… yet?); drawing and painting (I started doing this more regularly as I found about urban sketching, and I sometimes join the London group); and sports… running, yoga, and weightlifting. Especially since we started working more at home, it’s important to build in that deliberate activity to keep your body moving! Use it or lose it!

What hardware do you use?

For work I use whichever laptop the company deems suitable (although I tend to push back against heavy 16” laptops, as it’s a chore to carry those when we have to travel). I don’t get excited about work laptops because for me it’s just ‘the office.’ As long as it does not get in the way of doing my work, I am fine with it.

For my personal projects, I tend to build software which is as lightweight as I can get away with (the code you don’t write is the one you don’t have to maintain). So that inevitably leads to not having a ton of hardware requirements.

Soledad Penadés's setup
Sole's setup is easily swept aside when other projects require desk space

Right now my personal laptop is a MacBook Pro from 2017, which is more than enough for my other endeavours like music-making, as the software I use is quite optimised. So I am happy with the laptop as is; the only thing that bugs me is that it gets hot in summer and the fan starts whirring the minute you do anything moderately intensive (or with some terribad websites, ahem!).

I’ve been thinking of replacing it with one of the M2 Apple laptops, as I used an M1 for work and it was surprisingly cool and quiet… But at the same time I wonder if there exists a non-Apple laptop that works nicely with Linux, is lightweight but powerful enough, and whose fan doesn’t start the minute you open a terminal. Suggestions are welcome! I’d love to escape the Apple grip (and I’d also love to be able to repair it myself; maybe a Framework?).

Apart from the laptop, of course I have a ZSA keyboard, a Moonlander Mark I in white, with Cherry MX Brown switches. I use the wrist support and the thumb modules, but I am still not sure that I’ve found the best configuration. I change the height of the legs from time to time to see if it feels better… My hands aren’t small for a woman, but they aren’t big compared to the general population either, so I keep wondering if I need a smaller keyboard. How would the keys work? Maybe we need smaller keys too!

Soledad Penadés's keyboard
Keeping the trackpad between the keyboard halves lets Sole mouse with either hand

I place the (wireless) trackpad between the two halves, so it is in a bit more of a laptop position, and thus I can use either hand to do mousy things, so reducing the time and distance away from the keyboard. At one point I tried getting one of those Kensington trackballs that look like HAL 9000, but I found it too big for me, and I really struggled to do things like dragging items around the screen, so I sold it.

I keep the laptop closed and on its side using a vertical laptop stand. It has space for two laptops at once, which is helpful in tidying up the desk, as I can have both my work and personal laptops in there. Also, it helps with ventilation, as there’s more laptop surface exposed to the air than if it were horizontal, and I strategically place the laptops with the right side on top so that I can access the headphones port, and if the fan turns on, it blows away from me and towards the wall, which means I don’t suffer additional heat on my face when it’s already hot.

Soledad Penadés's laptop cable
Only one cable leads to Sole's laptop

I have an external Dell monitor from 2015 mounted on an arm so I can get more space on my motorised standing desk (an IKEA Bekant). Bigger monitors have become sort of standard since I bought this one, but it still works for me, and I like that it has a built-in USB hub so I only need to connect one cable to the laptop, rather than having a separate USB hub, or plugging in a ton of cables directly to the laptop for the keyboard, webcam, music keyboards etc.

I have a Razer Kiyo webcam mounted on top of the monitor. I quickly realised at the beginning of the pandemic that bending the neck to look down towards the laptop’s built-in webcam gave me a great deal of neck ache. This setup avoids that.

I never use the ring light in the webcam: It’s not bright enough to make my face look brighter, and at the same time it’s too bright and blinds me. Instead, I just use my Anglepoise Type 75 lamp turned towards the ceiling to diffuse the light, so it doesn’t look like I’m in a cave, and also the shadows aren’t as harsh as they’d be if the lamp was directly lighting my face. I’ve had this lamp for so many years and it has survived so many moves! And when I need to do detailed work, such as inking some drawing, I turn it towards the table so I get great light.

Soledad Penadés's lamp
A really good lamp can last for decades, and tenugui make good decorations

For music-making I use a small Korg nanoKEY 2 keyboard controller for melodies and a QuNeo for drum or percussions. They are both wired, so when I’m not using them I disconnect them, put them away, fold and tie the cables with a hair band, and stick them to the back of the monitor with (guess what?) heavy-duty Velcro!

Soledad Penadés's cables
All hail the heavy-duty-Velcro-and-hair-bands combo behind the monitor!

I used to have monitor speakers on the desk as well, but they took up a lot of space and I tended to use a pair of AKG K512 MKII headphones anyway (they don’t artificially increase the bass response, so the mixes are more balanced). So I put the speakers away until I find suitable arms for them. You’re meant to have them roughly at ear level when monitoring, and they weren’t, so it is just as well.

Apart from the fact that cables are distracting, the reason why I’m so determined to keep the desk free of clutter is that in addition to work, I use the same desk for my hobbies, and on the weekends my spouse might use it too. Dangling cables can get in the way when you want to draw or cut patterns for sewing, plus you might accidentally cut a cable… oops. So putting all the cables away helps you avoid those issues!

And that’s only “above ground.” I attached Velcro to the power strips and stuck them under the desk as well, so they’re not sitting on the floor or dangling from the desk. I used hair bands again to artificially shorten the cables a bit. You can’t fully fold and tighten the remaining length for all of them because you still need a bit of slack to be able to move the desk. It’s tidier than it was, but it still makes me a bit uncomfortable to look under and see all the slightly dangly cables.

It can certainly be optimised, but my solution for now is to just not look at it!

When I’m not standing, I use an Alvar Aalto three-legged stool 60. Like the lamp, it was more expensive than what you can get from a cheaper supplier, but it’s sturdy and well-made, and we find ourselves using it all the time for other purposes around the home, so given that it will last a long time, I think it’s not “that expensive.”

In general I’m not fussed about newness. I like things to last as long as possible, and in particular, I am worried about the hidden environmental and human costs that we’ve learned to overlook.

I’m very cautious about buying and dispensing with anything unless an upgrade is sorely needed. Even if I have to dispose of something, I will try to find a new home for it or repurpose it before recycling or sadly disposing of it.

So I really like the ethos of ZSA keyboards that can be repaired and made to last!

Soledad Penadés's setup in dark mode
The darkest of dark modes. Sole says: I never work like this! it hurts my eyes!

And what software?

At work lately I have been using a lot of web-based apps such as Notion, plus we were building things with Go for the back-end, and the usual React/ESLint/TypeScript/Styled, etc., mega combo for the front-end. This was also the first time I used VS Code on a day-to-day basis because I was more hands-on and I wanted to optimise resources and use the same as the rest of our small team were using so we could reuse things like launch configurations, etc…

… but for small tasks and in my personal projects I mostly just use MacVim!

I find it fast and reliable, and I’ve been keeping my configurations under version control for years, so I quickly get my Vim environment to look the way I’m used to when I set up a new computer. As I mentioned, I also normally build simple projects, so I don’t tend to need IntelliSense-style autocompletion because I can hold the whole thing in my head (and Vim can do basic autocomplete with Ctrl+N anyway).

Even so, I am not a Vim expert. I just add things to my bag of tricks when I need them. At the beginning I tried to learn as much as I could in a short period of time, and I just got very frustrated and forgot things as quickly as I learned them. So I decided to take the slow lane.

I do a lot of work in the terminal, as it annoys me to take the hands off the keyboard to click things. For me, it’s “CLI above GUI” most of the time!

I normally use iTerm2. I started using it back when Terminal.app in what was then macOS X did not have tabs, and I wanted tabs, not separate windows! And now I keep using it. I also use the split panes feature a lot; my typical use case is when working on back-end software: I tend to have a vertical pane showing a tail of the logs or the output messages, while I issue commands related to that server process on the other pane. And then I might have another tab with a similar split layout, but in lieu of the back-end server I run a watch process that checks for front-end app code changes, and regenerates the app on the fly. That way I keep related tasks together in the terminal, which helps with focus. If I have a lot of tabs going on, e.g. running a few long processes in the background, I move the tabs I’m actively working on to the beginning of the list and use different tab colours to highlight them, so I know where to direct my attention.

I tried learning how to use tmux for similar-ish features, but I could only remember the tricks for a week, then I went on holidays and forgot everything, and went back to iTerm2. One day I’ll try again, I guess.

I tend to use simple commands like less, tail, grep, etc… quite a lot. People use IDEs for that kind of functionality, but the cool thing of using the commands is they’re IDE-agnostic, and you can apply them to entire directories quite fast: You don’t need to “create a project” or “open a folder.” And using less or tail can be way faster than opening huge files with a text editor. There’s a place for everything in the world, but knowing these little nuggets helps a lot when you are connected to remote machines and trying to debug what is happening…

Music-wise, I tend to like music where synthesisers are really evident, and that is also a good description for the music I make! Unfortunately I do not have space for actual dedicated music hardware other than the MIDI keyboards, so all my music is made using samples and virtual synths like those in Reason.

I also use Renoise if I want very finely grained sequencing or want to do sample-heavy songs, as I find its interface easier for detailed, with lots of notes, tracks. That’s because Renoise is a modern music tracker.

It’s a very different way of writing music compared to the “piano roll” style that you normally find in other software. Here you enter the notes and effects that you want to happen in a sort of grid that resembles a spreadsheet, and then sort out the spreadsheet pages (called “patterns”) into a “playlist”. Here’s a video of one of my songs playing in Renoise, if you want to see what I mean.

Initially trackers were sample-based, so it they offered a very computationally cheap, size-limited and expressive way of making music that made the most of the sound hardware of the Amiga computers of the time. Since they were so optimised, they were frequently used for adding music to videogames and demos (for the demoscene).

You can make really bonkers things such as using only one full-size pattern with the entire song on it, and use very short one-line patterns played at the fastest speed with only instructions to mute/unmute channels interleaved in the pattern list; or making the play head go backwards; or repeat fragments of the song x times (like for a loop) so you use less space in disk. Here’s an example of a song that does a bit of that and the backwards technique, running in the DOS based Impulse Tracker—I made this song with a friend. Look for the song going backwards at about 2:00.

The first enjoyable music I made with a computer was with something called Scream Tracker many years ago, and I got totally hooked. It enabled me to make my own songs in a computer that was running at 120MHz (yes, megahertz, and that was very powerful at the time!).

Before Scream Tracker, I had made the computer play music using the beeper with GW-BASIC’s PLAY and SOUND statements, but it was not exactly enjoyable to anyone else in the household to hear a melody you could not interrupt once it started playing its square wave drone.

Nowadays trackers like Renoise have support for samples, and also modern capabilities such as built-in DSP effects, support for MIDI, VST plugins, and even a programmable interface so you can build your own utilities using Lua. They’ve gone a long way…

I also use Audacity to edit samples, although I often just use the built-in sample editor in Renoise, as you can record and also do the editing in it, it’s super fast and precise, and it is literally what you need to keep the flow going, as you don’t leave the application at any point. You can even draw the sample you want, or draw over an existing sample to adjust the values by hand if you wanted to. If you know what you’re doing, you can get away with not sampling anything externally, and just draw the sample you want from scratch, then use the built-in effects to round off your creation.

A final shout out goes, oddly for me, to GarageBand. I used to uninstall it from my phones or laptops as soon as I got them, as I already had my preferred music software and didn’t want to learn something else (plus it just looked so lacking).

But one time during a long-haul flight to San Francisco, I realised that I had not deleted GarageBand from my new phone, and as mystifying and confusing and featureless as I felt it to be initially, I experienced a lot of bliss playing random instruments with it during that flight.

So now I keep it on my phone, and I tend to jam with it when I am getting a little bit “frazzled” by a journey. It’s like doodling, but with music! I wish I had figured this out earlier.

What’s your keyboard setup like? Do you use a custom layout or custom keycaps?

A bit like my first attempt at learning Vim, I started very enthusiastically, and I ended up with a config that I didn’t know how to use; I kept making lots of typos and sending incomplete messages in the work Slack! I had to unplug the keyboard and replace it with the previous, noncustomised one, until I gathered the energy and time to start anew.

Now I have been working on this layout for about a year and I tried to not be “too clever.” Rather I wanted a basic sensible layout that wouldn’t trip me, and then refined the config as needed.

My favourite anecdote was when I flashed the first version of my second attempt. I was confident that this was it. This time I was using a reasonable layout and I was READY TO WRITE SOME CODE… and then I realised that I had not mapped the equal sign. I did not have time to start the configurator at that moment, so I had to copy and paste an ’=’ from other lines until I finished the day and could fix my little oversight, hehe!

I suspect my current layout could be more optimised to use more of the centrally based keys rather than the outer keys, which maybe would help with feeling like the keyboard is too big for my hands, but for now, this suffices.

Although I like using the big keys to press them with the thumb and send ENTERs like I mean them. My favourite thing about mechanical keyboards is having the ability to truly express yourself and represent what you mean, and when I press ENTER, I want to press it like I mean it.

So using a 1u key for ENTER would seem a bit like not being quite sure about what you just wrote. When I have used computers which had one of those small ENTER keys it always felt like you weren’t really sure that you were really committing to send that line of text.

In a similar vein, I slightly regret my choice of Brown switches rather than the Blue ones that I had on my first and previous mechanical keyboard. I feel that my typing is not expressing its rage intent sufficiently, as the noise is now more like tump tump tumpity tump rather than CLICK CLICK CLACK CLICK. But I am comforted by the thought that I can always replace the switches with blue ones and I won’t need to de-solder and solder anything.

I am still using the same keycaps that came with the keyboard, in part because I haven’t had time to research which other keys could I use, and in part because it looks like all the cool keycaps are made in the parts of the globe that will incur in the most expensive customs taxes to ship to the UK.

The one thing I’ve done is moving some keys around. I love being able to just pull the keys out and put them back wherever I want, and the fact they’re in a vertical layout and all the keycaps have the same size and profile is very helpful for this, because I tried moving keys in my previous keyboard (designed for Windows) so the keys were more natural for macOS, and it ended up a bit like a Frankeyboardstein, as they were a bit uneven in heights.

What would be your dream setup?

What the absolute dream would be is having programmable keys like those from the Optimus Popularis prototype that made the rounds a few years ago. That way one would not need to physically switch keycaps ever.

It would also be really useful in contexts such as when switching language layouts: UK/US layouts are very convenient for programming because the brackets and braces are easier to type than in the Spanish layout, but they don’t have accents. In macOS, if you want an accent you can keep the vowel key pressed down for long enough until a little pop-up menu shows up, and then you pick up which accented variation you want. But when I want to type longer texts in Spanish I have no patience to wait for the pop-ups, so I tend to switch to the Spanish layout, but then I keep forgetting where the semicolons, the parentheses, the brackets, etc. are.

It could also be very helpful when switching layers ZSA-style, as the keys could change in turn, not just the colour but also the label on top of them.

Sadly, I don’t think that Optimus Popularis ever made it into production. So back to possibly more feasible things:

I grew up using a computer whose CAPS LOCK key had a really nice red glow coming through its tiny circular indicator. I wish I could get the same or a similar effect. E.g. I am not going to drill a hole into the key to see the LED glow, but right now I don’t think you can “toggle” the state of keys with the current configurator, CAPS LOCK or not. And when I am standing, sometimes I can’t see the CAPS LOCK indicator on the top right, as the keyboard’s top key row itself covers it. So being able to use individual key LEDs as a toggle indicator would be helpful.

I can see an immediate use other than just for CAPS LOCK: One great feature of music trackers is that if you learn the shortcuts, you can be SUPER productive because they’re very keyboard-driven and almost every function is mapped to a shortcut. Imagine making a layer to drive a tracker and also be able to have the keys react to things like “loop mode” on or off.

I also wish there was more flexibility in the “colour sequences” department. Right now, either you activate one of the “colour” modes with built-in effects, or you use a fixed mode where the key lights have a certain hue. It would be useful to be able to use colour changes as visual information, not just as a decorative effect. For example, to notify the user that you’re recording, the R key could be pulsating in red. (Maybe this is pushing the keyboard customisation a little bit too far and I instead I should program more of my QuNeo to achieve this!)

And it’s not all about usefulness: I think it would be fun to be able to program our own effects! As an ex-demoscener, I feel that if something has colours and can be programmed, it has to be programmed, but after writing all of these wishes, I am getting this strong sense that what I actually need to do is to learn how the keyboard’s QMK firmware works and what its limitations are, and maybe then either do it myself or stop asking for something that can’t happen, ha!

Either way, here are three more wishes that do not involve me taking up a new hobby:

  • I wish the keyboard was heavier or had a heavier feel to it. Since I don’t carry it around when I’m travelling, weight is not a problem for me, but I miss the heavier feel of my former keyboard. Sometimes I get carried away typing and I end up sliding the keyboard and I have to stop and bring it back towards me…
  • Since I use the two halves of the keyboard quite close together, there’s a lot of slack in the cable, which makes it quite bulky and distracting, so I’ve been thinking of replacing that with something shorter, but it would be nice if the keyboard came with a short one in addition to the long one. Or maybe a coiled one?
  • And the absolute dream would be if the keyboard were Bluetooth and there was nothing between the computer and the keyboard! (but if you could also keep the capability for wired for flashing a new config, or when you don’t want the latency…).

© 2024 ZSA Technology Labs, Inc.