How to Balance Coding, Writing, and Creativity | Fernando Borretti | Glasp Talk #12
This is the twelfth session of Glasp Talk!
Glasp Talk delves deep into intimate interviews with luminaries from various fields, unraveling their genuine emotions, experiences, and the stories behind them.
Today's guest is Fernando Borretti, a distinguished software engineer and writer with over a decade of experience. Fernando is renowned for his unique contributions to the programming world, including his creation of the Austral programming language. Beyond his technical expertise, he is also an accomplished writer, delving into topics such as effective space repetition. Fernando's journey began in high school with Python, and he has since transitioned to working with Rust, driven by a passion for functional statically typed languages. Balancing his technical pursuits with creative endeavors, Fernando embodies a blend of innovation and artistry in his work.
In this interview, we explore Fernando's internal drive and motivations, his productivity tips, and his methods for managing and synthesizing knowledge. We'll also dive into his experiences as a writer of both technical and fictional works, providing a comprehensive look at how he seamlessly integrates his diverse interests.
Read the summary:
Transcripts
Glasp: Welcome to Glasp Talk. Today we have an amazing guest speaker, Fernando. He's a software engineer and writer with over a decade of experience. Some people know him for his own programming language, Austra, and he has written about effective space repetition in previous episodes. Today, we'd like to ask him about his internal drive and motivations, productivity tips, and how he manages and synthesizes knowledge, as he writes both code and fiction. Fernando, welcome to Glasp Talk.
Fernando: Thank you, I'm delighted to be here.
Glasp: I briefly introduced you, but could you introduce yourself to people who don't know you yet?
Fernando: Yeah, so I'm Fernando. Brief life story, I was born in Uruguay and moved to Australia where I've been living since 2019. Yeah, I work as a software engineer, started working professionally right out of high school, and two weeks out of high school I started writing Python. Did that, various Python jobs for most of my 10 years, and just horribly burned out of Python so now I'm thankfully much happier writing Buck and Rust at a small AI startup. So that's very good. And in my personal life, I well not quite personal life, personal work, I've always worked on various kinds of software projects, open-source projects. While I was in college instead of studying for important exams I was writing various open-source tools, most used in Lisp because I caught the Lisp mind virus and I started writing in Lisp obsessively and that didn't have a big future, let's say, because it's a very small isolated community type thing. And yeah, so lately in the past few years, branched out a bit more to I kind of burned out of dynamic typing so I'm working more functional statically typed languages. The AAL compiler, which you mentioned, that's written in OCaml, was also a mistake. Yeah, I think most of my personal projects nowadays are written in Rust because it has good build tooling and it's a nice developer experience and it's statically typed.
Glasp: Yeah, totally. And what you said, you started coding in high school, right? What made you start? What intrigued you to write code? Some people love writing code and some people don't, yeah what motivated you?
Fernando: Since I was a kid I wanted to make games I think that's a very common origin story. I always wanted to learn how to program but nobody around me knew how and I just, didn't have the tooling like we got the internet quite late, my first experience of programming was with a friend of mine whose father was an electrical engineer had a CD with a basic distribution so he lent me that and I installed it and I had a basic interpreter, I don't even remember what it was called like dark basic or something no Liberty basic it was called. Yeah it was a basic interpreter on my terrible Windows XP computer and that was my first experience of programming but I always ever since I was a kid I wanted to learn to do it and I started writing my own code personally because I wanted to write a program to write novels in Scribus or something but I'm a big Yak shaver so it wasn't enough to oh just buy an existing language and write the program I had to go down the Yak shaving hierarchy and eventually that led to me writing my own programming language. I think if I had more time I would probably write my own silicon and my own instruction set architecture but you have to kind of decide where the Yak shaving ends so I have yet to write that program for writing novels but I do have a programming language and a few compilers done so that's that's good in a way I see.
Glasp: Yeah, and how long have you been building or writing your own programming languages?
Fernando: Oh God, I hesitate to answer this because it's such a long time. I started writing my programming languages I think the oldest one I got up on GitHub was 2012. I guess I'm kind of a control freak and I've always been unhappy with all the languages in various subtle ways and always trying to build my own and AAL kind of evolved gradually I think in 2015 is I had this idea of like let's make a statically typed Lisp with compile time memory management and if you actually if you dig in the repository history or in my own intensely disorganized file system, the original version of what was of AAL it only had the name because I thought the name was cool it was like a statically typed Lisp with like a with reg based memory management it was very inspired by Common Lisp and gradually it evolved step by step and like C 2018, 2019 I got the idea to make like a Pascal SL syntax inspired language and yeah that's the current latest version of the language more or less that it's in syntactically inspired by Ada, semantically inspired by OCaml and Rust and such and so yeah it was a lengthy evolution most of the most of it yeah for many years I worked on it like on and off this was most of the most of the time I worked on it was during the nadir of untreated ADHD so I would work on it for like a few weeks or months and then run out of steam and then drop it and work on it again so the question is if the question is how long have I been working on it I guess the answer is where's my lawyer I plead the fifth too long and then as open source.
Glasp: I think over time you have collaborated with many people, right? Like developers and so on.
Fernando: No, I'm less of a collaborator and more like make my own thing and put it out there I have sent PES like other people and collaborating with other people in other projects but yeah I'm more of a loner with open source which not ideal but it's more common I guess in like the in the Common Lisp community where I started writing open source code it's more common for people to kind of tend their own garden than collaborate I think this is called like Lisp curse or like the curse of the bipolar Lisp programmer where the language is so powerful that you can actually you don't really need external dependencies you can kind of build your own garden of little tool and libraries and just kind of live in your own splendid isolation which is kind of a credit to the language but also it's not good for the development of a community I think Eric Raymond had a point about how like C is such a horrible language and it's so hard to build anything complicated in C it forces you to have a community or Python has so many weird paper cuts and like strange things that you have to get used to but that paradoxically that helps you build a community because you have a you have a set of people who've gone through these trials and tribulations who know they've been burned by the semantics of lexical scope in exception frames or whatever the yeah that's like they've gone through this together and that's they you need a community of people to tell you oh no that error message means this I see and then I saw Paul Graham is PG is also a supporter not supporter but he sometimes mention about this yeah yes Paul he used to write a lot a lot of Lisp I mean the startup the big startup that he sold in the 90s that was I think the the on-ramp to Y Combinator that was written in Lisp there was a different time arguably you could get away with Lisp was web scale then because there wasn't much of a web but nowadays it's kind of far behind like the tech stack I think but yeah Paul Graham actually he wrote two books about Lisp one is called like ANSI Common Lisp and one is called On Lisp and they're really really good and they like revived in my flagging interest in Lisp a well back really gorgeous books if you read them.
Glasp: I'm just curious how many developers are using your programming language? Or you cannot track it?
Fernando: I can't quite track but I get more GitHub issues and Discord conversations than I would have expected so more people are trying it out I got a message from somebody I think here in Sydney or in Australia who's using AAL to build I think modules for seL4 seL4 is a micro-kernel operating system that's been proven to be secure and correct and it has I think support for like capability-based security and AAL has support for capability-based security so somebody was out there trying to integrate the two and build like secure provably correct software in AAL which is interesting if I had more time but currently work, is pretty all-consuming I kind of want to rewrite the whole compiler in like Rust because OCaml is like it's not there are many difficulties with OCaml.
Glasp: I see. Interesting. At the same time, I'm curious you are writing code but at the same time you writing blog posts and also fiction. How is it possible?
Fernando: In terms of time management or cognitively?
Glasp: How is it possible to do all of them time management and productivity?
Fernando: Time management and well I mean with productivity and time management if you actually if you look at the copyright years of the of the various projects and the publication years of the posts I can't really say I'm a star of productivity and time management but I think how can I best answer this I do have a file of like collective productivity learnings that I can share but otherwise with time management just like you just have to make the time for like personal projects I think it's important I always valued my time that's how work to write and to and to work on code and such and some things they come just some things you have to allocate time for them to, oh I'm going to do three hours like write a blog post but some things they kind of just they draw you in and then it's no longer a question of like time management it's like oh I am writing this post now and it's I'm not going to be distracted by something else and I finish it in like one big burst of time I think yeah productivity and time management is something that I struggle with for a long time and it's only recently that I was diagnosed with ADHD and I started a journey of improving my organizational skills in general part of that involved medication but it wasn't like an overnight thing but I started oh I'm taking stimulants now so I'm productive it's actually taken me many years to learn how to use a to-do list effectively how to use a calendar effectively how to manage my time effectively I have somewhere F in my personal knowledge base.
Glasp: Yeah, and I read your blog, "Unbundling Tools for Thought." And that has a lot of insights. Very good one.
Fernando: Thank you. I wrote that one because my I guess my white whale is productivity software I written all these in my personal projects I written all these like little wikis and not taking ups and again in college instead of studying my notes I was writing like a Wiki in Common Lisp to take notes which is not a productive use of time but at least I know a lot more about the design space of wikis that's good I can say that but I've always been I've always been understanding this just this whole area like information architecture maybe I was predestined to be a programmer for that reason always been interesting like how you organize information there's a website called uses this com and the website is about like it's just interviews with people about what tech they use I wanted to be something like that but for how people organize information like what is your folder hierarchy what is what does your notion setup look like I wondered that for a long time maybe I have to start because I like taking inspiration from other people and how they organize the things yeah I'm also interested in how people manage knowledge and information.
Glasp: Yeah that's a really interesting topic. And that's why we are interviewing people like you.
Fernando: Well currently my qu and cod process is I use the reminder sub from Apple a to-do list I use the calendar also the normal Mac OS calendar I use it kind of in a weird way where it's both prospective and retrospective I use it to plan stuff but then I also use it to track time and I modify the events after the fact to track the time which kind of inconvenient because you can't you start the week with this very beautiful symmetrical block of time perfectly planned and then you end the week and everything's all jumbled up because the actual the actual time that things take always disagrees with what you planned but but that's a matter of just like discipline right and actually sticking to the plans that you make and for notes I have so many half finished like little wikis and so in my file system there's a bunch of like SQ light databases for all these wikis I used to have that I yet to merge into the one true Wiki and currently what I have is I'm actually using Jekyll the static site generator as a as a personal Wiki because it's it's it's markdown flat file flat markdown files in the file system and you can render it to HTML but gradually I kind of just stopped using the HTML rendering because I don't really need it for anything other than rendering Latex math for math notes so yeah now it's just a bunch of markdown files in the file system and I don't really have a good ontology it's kind of messy at present the only thing that's very structured is I do hierarchical reviews so I will have a page of daily reviews weekly reviews monthly reviews and yearly reviews so every day I just make a new file with the today's timestamp so it's 2024 0628 and yeah I just do my my write my journal for the day and then at the end of the week I review the week and at the end of the month I review the month. I find it vaguely useful especially since the Daily Journal is very free form but the higher-level reviews are more structured they're more about answering questions. Broadly speaking, what did I do this month what did I not do what went right what went wrong what are the reflections and what are the what are the actions I'll take to improve things and for organizing information other than the wiki I try to centralize everything through through having a few as few inboxes as possible so when I kind of have a list of things to act on in the to-do list anything anything that's meant to be actionable goes roughly in the to-do list I used to just bookmark Pages anything that I found interesting or there was a paper I wanted to read or a book I wanted to read but I didn't have time just bookmark it browser bookmarks are really a bad idea they're the place where information goes to die because I can't really remember first of all they're completely disorganized or rather there geological strata of organization were this period there was an organization and this period they had this ontology didn't quite work out and this period was disorganized again but I think the problem with bookmarks is I can't it's there there's another side that's missing to The Bookmark which is like what was my mental state when I was looking at this why did they put this book in the in the bookmarks is it because I want to read it is because it's part of a a question that I was trying to answer yeah the bookmarks are kind of a nightmare because they're just not very actionable I think organizing information by action ability is probably a better idea like grouping things by project or by a question you want to answer in in a sense tying the inputs to the outputs so that they actually leave the system at one point it's probably a good idea but I'm such a hoarder I'm too prone to just like collecting things like oh here's a paper about the history of spreadsheets I'll surely get around to reading this someday nowadays I try to say okay either this is junk or it goes in a to-do list to be actioned at some point in the future or I just tweet it out where it's like putting something on the Twitter timeline it's kind of a nice compromise between throwing it out and saving it because in a sense it's saved you can go back and search for it and maybe it's like useful it's more public so maybe it's more socially useful to share but you don't have the problem the endlessly growing list of bookmarks that will never be actioned. I think the bookmark a missing context right yeah we need context and as you mentioned yeah that makes sense I wish it could have something like tree-style browser navigation where there's like a tree on the part of a TB when you open a link it opens a sub-node of the tree and then you can just save a whole tree and give it a name like oh this time I went on a rabbit hole digging all this information up close it up save it put it away.
Glasp: Yeah that's a really interesting idea. I don't know if someone is exploring this area but interesting and then also nowadays AI is kind of trendy right people use AI like ChatGPT and so on. Do you use AI in your workflow I mean for coding maybe yes or no but knowledge management productivity time management?
Fernando: I use I use copilot as a code completion tool that's very low level I use CLA the latest model 3.5 is like really good but for programming, I mostly use it to talk about kind of like high-level architectural decisions. It happens very often that I can implement something in one of the true ways and I need to like I need somebody to like soundboard off so I'll present it to CLA and put the arguments for and against and it's kind of like rubber duck debugging but at a higher level of obstruction and I find that useful. I mostly for AI for coding I mostly use it in a very low-level way with copilot and also in a very high-level way with Claude for productivity and time management and personal life sometimes I also use Claude is like a soundboard for my own personal life like oh how do I approach this problem it's very good for I have no common sense so it's very good for asking what would a normal sane person think of something without bothering your own friends so as a kind of like calibration tool for common sense or soundboarding personal problems like oh how can I get better this and suggest strategies and that that's been fine but I don't use any like AI powered productivity tools I don't think there are some like there's a tool called reclaim doai which organizes your calendar with AI and I haven't used it but I can't maybe if I was if I was busier in like a people sense it might be useful but I find it useful just organize my own calendar and I don't spend too much time doing that becauseI don't have that many events that I have to plan around and for writing how about for writing do you use a for writing no I haven't yet I think I'm not as against it as some people are in the abstract but concretely if I ever ask like I occasionally ask a Claude to like draft a reply to an email and it's just very hard to get the tone right because it always sounds too preppy too obsequious too artificial. Sometimes I'll use it draft an email and I'll get like oh that's that's a good sentence or I iteratively draft the thing but it's ultimately it's in my own tone and maybe it's one or two sentences are like from Claude for writing blog posts I have a well the short answer is no I'm not completely against it but I'm fairly protective of my own writing and I want it to be mine I have a somewhat systematic process for writing where I will start with an outline and just elaborate the outline and keep elaborating the outline and just add reorder nodes and add sub nodes and break it up and when it's when it's all the detail is there then I'll start iteratively transforming it into text okay the top level nodes become headings the lower level nodes those get refactored into paragraphs that's the actual turning of the outline into Pros is a surprisingly time-consuming process it takes it takes a long time and you might think this is the obvious use case for something Claude or GPT to just transform this outline into Pros but it never comes out quite right the tone the weighing of the sentences. Yeah, I think I probably do better for now but I'm open to the possibility that will change in the future actually like yeah in 2022 I was trying to get this this short story SL Nolla out out the door and one reason I was like rushing to get it done is because I thought pretty soon AI could be a super human pros stylist so you can ask you can give it a few bullet points and it's going to give you writing that's like Nobel prize winning just beautiful lyrical writing that just brings you to tears and so I have to finish this before in the short window while human art is still a viable thing that has not been the case yet maybe the base models before RHF are more are better for creative writing but nobody releases those and after it's gone through RHF it's so hard to get ChatGPT or Claude to write with the tone that I want it's actually quite interesting because when you ask ChatGPT or Claude to write something in the style or HP Lovecraft or ER Hemingway or whatever writer when you ask it to do style transfer it writes it's kind of accessing a space it writes with their style but it's unmistakably written by ChatGPT or Claude on all of the axes it's like Hemingway or whoever you ask but there's one axis where it's just fixed in the ChatGPT world I don't know what you call that axis like preppiness or something like that but it's whenever you do style transfer with with an LLM it always comes out. It's Lovecraft written by ChatGPT it's Hemingway written by ChatGPT it's Stendhal written by ChatGPT and that signature is so unmistakable it's kind of annoying.
Glasp: Have you used the memory function from GPT? They memorize the conversation and learn your taste and tone.
Fernando: I haven't used the memory yet I like having each conversation be F metal I haven't used the Claude projects feature yet where you can share prompts across conversations I'm fairly low touch with these things I rarely change the system prompt for specific too many other things I'll just put it in the request keep it short or something of that nature I see. I often ask to keep it short device.
Glasp: That makes sense. And since you are a software engineer, you understand how programming and AI work. So, have you found an unfair advantage as a software engineer in writing? And does that help you write something or fiction?
Fernando: Well, I think most of my writing is about tech so yeah knowing the details I think in tech the details matter to an almost uncanny degree so many times in writing code I have this perfect plan and it's derailed by the slightest detail one row in the database is wrong and that means the entire schema migration kind of is no longer possible things of that nature so The Details Matter so understanding the details helps when you're a tech blogger and for fiction I don't know I think the fiction that I write has a lot of like tech technical detail and a lot of references to computing and the history of computing and those you can't do that unless it comes from a place of first knowledge and also likes genuine love for the subject where you can turn you can turn something that's a quotidian thing that you work with every day into something a little bit magical maybe does that answer the question?
Glasp: Yeah, I think so. It's a different type of question but when you start writing fiction, what do you start with? You think the character first the story at first or the ending at first. How do you start writing it?
Fernando: Well that's interesting. It's less like a blog post with technical blog posts I mentioned before I'm very systematic I said with the bullet points and recursively expand them and turn them into text with fiction. It's different. There's usually a process of accretion or nucleation where something appears in my mind and it's usually first a world and then it's a sentence and this over an extended period and then it's a paragraph and then it's like this mental imagery of a scene of some particular thing and then it's tied to some abstract idea of what the story should be and usually the idea is very vague. A group of explorers petition a deity a group of people explores the ruins of a dead god and just scenes and images start appearing and they accrete around these very small things little layers of stories start accreting and you end up with a necklace of these little pearls or of scenes and bits and paragraphs and sentences and ideas and story fragments in a very vague sense and you just the writing process the fiction writing process for me is kind of weirdly physical I just kind of pace my room and ideas come up in my head and accrete occasionally I'll sit down and write something down very quickly and go back to obsessively pacing the room and generating more ideas it's kind of a dynamo you have to turn in the physical world to get the gears inside turning and when enough has accreted you just can write the connective tissue and that's a story so very unsystematic woefully unproductive. It took me most of a year to write less than about 25,000 words for example which is not an ideal pace not good at all but I don't know something says time.
Glasp: Interesting and so when do you think I mean how long does it take to write fiction, for example, like 20,000 words? And when do you think it's ready to publish?
Fernando: How long does it take? I think I could probably go faster now but back then when I was doing this more actively in 2021 and 2022 I would say maybe a few thousand words a month very far from what you might need to finish a full-length novel and how to do it's ready to publish that's a good question.
Glasp: Yeah, I'm not sure but I can imagine like while writing fiction and the story but later, looking into the story, then, you think like "Oh, I want to change the story and start writing again" or something like that.
Fernando: Well, so yeah I mean I think it's done it's I well I think for me it's like it's it's ready to publish when I'm so physically sick of reviewing it that the thought of reading it over from the beginning is physically repulsive so I can't review anymore let's just hit publish I mean maybe in a few in a maybe in a few months GPT5 will be able to make this from a few bullet points in a second to much much greater quality and internal coherence and characterization so like let's publish while humans can still make art has had some quote about how like if you don't publish it's just just it's just an eternal draft that you can that you're going to review forever and I have some yeah there's a couple of things where I occasionally think oh actually this scene I should rewrite this I should change this I should change this word because the Rhythm doesn't quite flow but I've so far not done that because it just never ends so you kind of have to accept well you don't I might actually I reserve the right to go back and change things years after after the fact but to some extent you kind of have to accept no this is this is how it is and it's it's a work of art is kind of like a point in time so if you keep revising it it's it's changing because you're not the same person who wrote it right this is a problem with really long form art web comics or web novels that go on for a long time like a decade Plus in the making where it's like will the author changes so much during the process of writing that the the internal coherence of the story starts to fail because they changes the person so the world building starts to change the character the nature and motivations of the character starts to change and things start derailing because it's the author who's changing.
Glasp: I see. Interesting. I respect so because I have no talent or sense writing fiction so yeah inspiration-wise, storytelling-wise, it's so respectful. So yeah and at the same time do you think setting deadlines helps some people use this method like "Oh, until this day we gotta get things done?"
Fernando: Anything if it's unfinished or whatever we gotta finish publish it and do you believe in that method or way to do something I've become a lot better at managing time and a lot more disciplined but I'm not I'm not yet at the point where I can set arbitrary realistic deadlines and actually commit to them for most especially for creative things for I think deadlines are best for things that you procrastinate on for essentially emotional reasons oh I have to get this paperwork done well there's nothing physically preventing you from doing it earlier so forcing yourself in various ways publicly committing to a deadline can be useful but for a creative work I don't know I think maybe a more experienced or more talented writer would be able to approach the writing process more systematically and set deadlines and milestones and actually keep them and say okay for this week for q1 we're going to write the following scenes or we're going to get the novel like 75% done but at my skill level it's I don't think it's possible to force creative work to fit a deadline because so little of it is actually me writing in a systematic way and so much of it is just turning the crank and waiting for a new idea to fall out which has a bable timeline.
Glasp: I see. That makes sense. I'm a software engineer and some of our audience are developers and aspiring developers. While I'm coding I often forget or it's hard for me to publish something because coding is a kind of writing. So, I don't have time to write a blog post. How would you encourage software engineers to publish or share more while coding or becoming a writer?
Fernando: Well, I'll say a couple of things one is that I often thought oh this blog post is so mediocre this is not even good I wrote this in an afternoon then I published it and a lot of people love it and they tell me I've been thinking about all these things you just you nailed this one thing I had been trying to put towards but never could it's actually valuable and the amount of effort that I put into the post is often uncorrelated with the reception of it so one way would be to share drafts privately with friends not in the with the objective. Please let me know a typo but rather with the objective of Is this valuable to you is this interesting could this be interesting to somebody another thing is I have found it useful to set a kind of rule that when I do something I write about it in some way and maybe it doesn't deserve a blog post but at least a Twitter thread because there are so many little ad hoc things that I do that have to do with tech I'll write a little Python script to do this one little task or I'll go on this rabbit hole research reading about this for that topic and if something isn't published or doesn't lead to some external outcome it's kind of like it didn't happen it's so having a kind of rule that by default things should be public. If you do something and write about it then it isn't a waste of time it's potentially socially useful. Of course, you have to have some filter for quality but in my experience, one thing that could be encouraging is that I often will find somebody on Twitter or GitHub or through their blog and think oh this person is really interesting I resonate with what they're thinking and talking about I want to see more of this person and I go on their blog and there's three blog posts and one of them is an apology for not blogging often enough and I've never really wished for somebody to write less I've never thought oh this is too much I don't need to know I don't need to read this post mostly I when I run into somebody I think is interesting. I wish they would write more and share more of themselves because I'm curious about them and I want to know. Of course, I want to know how you organize the files in your file system that's super worthwhile but I think a lot of people would write about that if they think oh who would care who wants to know about this little detail of little old me. So, that's what I would say is public by default don't be a perfectionist, and often people want to know people want you to share more of yourself.
Glasp: Yeah totally. That totally resonates with what we do at Glasp we want people to share more about what they reading manage some information and so on yeah also this is a last question but as the Glasp is a platform where people can share what they are reading and learning and as the digital legacy that's what we see and what kind of Legacy or impact do you want to leave behind or for the future generations through your life?
Fernando: Yeah that's interesting. It's a question I don't think about often. I think I mentioned earlier I think to modern people the idea of leaving a legacy or having a legacy to take care of seems almost kind of archaic or old-fashioned what do you mean I'm here to watch Netflix and scroll Twitter and then I just pass the time I well it's very vague and it's a very safe answer I like to leave behind a trail of beautiful things and they could be software objects or fiction writing or non-fiction writing at least yeah it is a hard question to answer because it requires you to confront a number of things one is mortality and the other is like what are you doing with your life and is it worthwhile and so many people spend their lives doing things that if they yeah if they thought through it I saw a great tweet about this year they what did it say yeah people spend their lives pursuing things that don't stand up to even 30 seconds of scrutiny so creating beautiful artifacts but that's a very safe answer.
Glasp: Yeah that's a great answer yeah I think yes yeah thank you yeah okay yeah thank you for joining today and we had a great conversation today yeah thank you so much.
Fernando: It's my privilege thank you
Glasp: Thank you.