Logo

Software Developers Journey Podcast

#118 Erik Rasmussen connects the dots of his career

Transcript

⚠ The following transcript was automatically generated.
❤ Help us out, Submit a pull-request to correct potential mistakes

Erik Rasmussen 0:00
The reason that university degree means something is that you have a piece of paper that says that you are willing to do things and work on stuff that you don't really want to do. But that someone has told you that you have to do it. As an employer, that's a huge benefit for someone to have a piece of paper proving that they are willing to do work that they don't want to do, because someone told them to do it. And if you don't have one of those, you have to prove it some other way. I used to roll my eyes so hard at the patterns, courses, object oriented patterns, like the facade pattern and the actor these things this was really big. When I when I went to school, I thought that was just so dumb. It wasn't at all related to any programming that I'd ever done on my own. However, that's one of the things that I look back on and realize that these are common patterns that appear in code every day. Like they taught it so abstractly, that it didn't seem useful, but once I was able to like see those patterns in real life, it made more sense.

Tim Bourguignon 1:06
Hello, and welcome to developer's journey, the podcast bringing you the making of stories of successful software developers to help you on your upcoming journey. My name is Tim Bourguignon, and on this episode 118, I received Eric Rasmussen. Sponsor: But before we get to our guests, did you know that Python was again ranked the top one to language on the 2020 StackOverflow survey by fellow developers from around the world. In the past few years, Python has become my language of choice. But I still have tons to learn. Is Python on your bucket list as well? Well, Michael Kennedy, who shared his dev journey with us in Episode 94, and hosts the talk Python to me podcast can certainly help. Among he is Python for absolute beginners, Python for the dotnet developer or countless other advanced courses. There's certainly one for you. Go have a look at his catalogue and use the link talk python.fm slash journey for a $50 discount. And finally, stick around until the end of the show for a chance to win Michael's Python for absolute beginners course. And don't forget to thank him for sponsoring the show. And now on to the episode. Eric is an American expat who has been living in Spain for the past 15 years with a Spanish wife and two "Spanglish" speaking children. I hope that's how you say it. And he's been coding for 30 years, and he's most well known for his popular react libraries. redux form and react final form. Eric, welcome to DevJourney.

Erik Rasmussen 2:44
Thank you very much. It's great to be here.

Tim Bourguignon 2:46
Is this how you say it "Spanglish"?

Erik Rasmussen 2:48
Yeah, it's a it's a it's a portmanteau of which I guess must be a French word. It it's a mixture of English and Spanish. Yeah. When at my home We speak in a mixture of Spanish and English where we switch languages mid sentence. It's like that's what we call it, like Spanglish. I know

Tim Bourguignon 3:09
the feeling my kids are able to speak "Deutschzosisch", I would say so from mixing a mixture of French and German. And they are able to switch or speak to me in French and speak to the mother in German in the same sentence, which is interesting.

Erik Rasmussen 3:25
It is not about developers, but mine have the interesting phenomenon where they cannot look me in the eye and speak Spanish because they see me as the English speaker like for when they were like two, they didn't know that I also understood Spanish, but sometimes like they, they want to say something in Spanish because they want to talk about some gossip at school or something and they can't say it to me in Spanish. They have to like, think slowly to translate it and sometimes I tell them, Look, just go look at look at the chair over there. Pretend mommy's in the chair. And talk to the chair and then I'll understand. But this block where they the language for each parent is different and they can't. And they also can't speak English to my wife, which is weird. But in that strange,

Tim Bourguignon 4:12
it is weird, but it's really cool as well. It's, I mean, they're really got the language anchored deep down in their in their brain. Exactly.

Erik Rasmussen 4:23
I'm sure there's some clever connection to writing Java in the browser or something that would be funny, but it's not coming to me.

Tim Bourguignon 4:35
We'll see if we can we can use that metaphor during the discussion. Awesome. So this show exists as you know, to help the listeners understand what your story looked like and not your kids or maybe your kids will have a play in there. We'll see and imagine how to shape their own future. So before we talk about your kids, let's go back to your beginnings. Where would you place this part of

Erik Rasmussen 5:00
your dev journey My father was he was in grad school for a psychology master's and was and they were running a bunch of experiments on mice and stuff. And he had to crunch numbers with these big computers at the, at the university using like punch cards, which I can't even get my head around what it would be like to have your program on punch cards and carry it around and actually have to schedule with a human. When can I run my program through the computer and if you're didn't punch your holes properly, you know, it's just so far removed from from where we are now. But anyway, he was fascinated with with computers from early on. And so when this personal computer revolution was happening, he was quick to jump on board and buy like a Commodore 64 or something and start programming in that I've listened to a couple of your episodes already. And I've already heard a couple people talk about how they had a Commodore 64. And they used to, as you have admitted on past episodes of copying code from a magazine article, where you had to type it in exactly right. And if you didn't get it exactly right, then, you know, too bad for you. You had to go back and figure out what was wrong. So I did a bunch of that. It was just those simple little texts, games. But just the idea that you could tell the computer to take some input from the user. The the very first program everyone writes is, what is your name, and you type in your name, and then it says, Oh, Hi, Eric, or whatever. Just using that same string that was given as input as output was just cool to me as a kid, like my parents had this computer at home and I would play on it and literally, I had, we had separate little boxes for the floppy disks that Eric could use and the floppy disks that Eric wasn't supposed to use. There was a rule that I had to ask for an adult to come and help me put the floppy disk into the computer and close the little close little door. Apparently, my father has this story where he was walking by the computer room one time and he saw me reaching into the floppy box. And rather than, you know, immediately say, hey, you're not supposed to do that. He stood in the doorway, and he watched as I as I took out the floppy out of it's a little sleeve. This is the five and a quarter inch big black floppies and, and inserted its care very carefully into the into the drive and close the door, you know, without asking for help. And, you know, he was just sort of proud that I had broken the mic and broken the rule, but safely and respectfully, and like the rule had served its purpose. But yeah, I used to have different games and stuff that I would just spend hours in front of the computer. It was there was never any doubt I would spend my adult work hours in front of a screen, it just was always going to happen. There were times when I, at my local school, like the library, got a computer and it was a big, big deal. And while my father was was working for an for a state agency, he also sort of started a little my town's first computer store. And so he he provided the computer for the for for the school. And they gathered all the teachers around and I gave the class to the teachers when I was like six years old or something, I was like a computer and you open the drawer and you put in the floppy to boot you have to have the floppy in because this was you know, pretty hard drive. And anyway, it was just sort of a funny story that a kindergartner is teaching the teachers but so I've been playing with computers for a long time.

Tim Bourguignon 8:57
And that's that's awesome and you You knew from there on that, that you wanted to spend your life with computers. Are you profited from life?

Erik Rasmussen 9:06
Yeah, I mean, there was a, there was a brief time when I thought every child wants to be like an astronaut or something. I knew that I had enough motion sickness that I wasn't probably going to be an astronaut. But I thought I could, you know, be an aeronautical engineer and like design the rocket ships or something that work at NASA and do cool NASA stuff. But then I went to a to like a little summer camp about it. And I realized that there was a whole bunch of math, not just math, there wasn't the math that scared me, but a whole bunch of knowing about how engines work. That didn't appeal to me at all. And so I, I said, Well, I'll just, I'll just play with software.

Tim Bourguignon 9:45
But you you would have ended ended up playing with software anyway.

Erik Rasmussen 9:50
Probably. Yes. Yes. Yes. Exactly.

Tim Bourguignon 9:53
It's a it's fun with big air quotes. How? How do we are attracted we'll do some news pass. I was attractive architecture and aeronautical engineering as well. When I met fluid mechanics and and yes, it was just Yeah. Good good back to software.

Erik Rasmussen 10:13
Yeah, we went to we went to at this little camp we, we we toured in an air tunnel and we looked at the other fluid mechanics and I was just like, nope. We do something else.

Tim Bourguignon 10:27
I want to go too far in a tangent but there's a book from Einstein and Einfeld called the evolution of the ideas in physics, I think something wildly translated from French, in my mind, but it's a book that goes from from the very basic steps of physics all the way to relativity, with no equation at all. Just just showing you physics with your hands with with with something is almost palpable. And this is a physic a loft and this is a physic I really loved and to say that this is so fascinating, so fluid mechanics that I I can almost manipulate because you cannot be manipulated but you can you have the feeling to have it in your hands. That's, that's fascinating. But as soon as it became theoretical, it's just fell down for me. It just wasn't was.

Erik Rasmussen 11:13
That reminds me I in in high school, I took physics without calculus because we hadn't had calculus yet. and fix this without calculus is basically memorizing these equations. Then once you learn calculus, you can look back and be in and be like, well, oh, how could you even do physics without calculus? Right? Like, there's a reason that that Isaac Newton invented calculus when he was talking about you know, gravity and, and acceleration and velocity and stuff like you it physics is calculus, and just to such a degree that the fact that I took a whole course where we didn't talk about, you know, the rate of change, really just just about some other numbers in physics. It's kind of kind of wild. But yeah, so that that's, that's interesting. So when I was still a kid, my father had this had this computer store. And eventually my mother's sort of took over the computer store, like she studied social working in, in college. But it turns out that all of those skills really applied well to like customer service and dealing with people that had broken computers and, you know, being empathetic and stuff. But she also really loved fixing computers. And so she sort of took over this my Tom's little computer store, but so I would spend, you know, afternoons after school in this computer store. And my very, very first job when you used to buy floppy disks, they were unformatted. And you could not use the floppy disk until you ran, you know, format, a colon or whatever. At the DOS prompt. It's a the disk fairly useless, like, I mean, they were useless until you did that. And so they would pay To format floppy disks, so they can then you know, give them to customers already formatted. You know, had like $1 an hour or something, I was just putting the floppy disk in. But it was a, it was again I was around computers and it sort of felt like I could do things with computers to make no money for jelly beans or whatever I was, I was spending my money. So that's that's a fond memory of mine of being a kid and, you know, sort of having a computer job, if you can call it that.

Tim Bourguignon 13:32
Definitely, definitely you were playing with hardware in front of the computer. I think it's, it applies for a computer job. Yes.

Erik Rasmussen 13:40
took like two minutes to format a floppy disk or whatever. And so you like I do in my in my current job, I sit there and wait for the continuous integration testing to finish with a little dots across the screen.

Tim Bourguignon 13:57
We have no IDE tabbing to something else. Now you're failing.

Erik Rasmussen 14:03
Now I tab over to Twitter and then 20 minutes go by, and then I can look back.

Tim Bourguignon 14:11
When When did you go from this small job to a bigger job?

Erik Rasmussen 14:16
Well, so again, my parents had a big influence at some sort of science fair it in school, six or seventh grade, we had to do this, this thing where we were following the scientific method, and we had to come up with a hypothesis and then go and test something and then report back the results in an orderly manner, which is a great project for for kids. Please, if you're a teacher listening to this, do that with your kids. And so, my project that I came up with was deciding was which programming language was better for drawing ASCII boxes on the screen. or something like that, you know, it's not really plans but kind of kind of silly looking back at it, but so I used some certainly D bass was was a programming language that was basically was mainly for databases, but you could draw like tables and stuff on the screen. And basic was another one. And anyway, so I wrote up this paper and I, you know, printed out all the source code, and there were different ways, because this is back before gooeys, where you were drawing sort of your, your interface on the screen, often with boxes made out of, you know, hash signs. And I wrote these different programs and the different strategies for how to do this and like I, I timed how many times I could, I could do it in a minute or whatever, like how quickly it would render and also how long it took me to write and stuff like that. So already programming was sort of interesting for that. But then, so my father worked at this institution for people with development disabilities, people that need help. Living and they would live at this at this state run agency. And with their psychology background he knew about, you know how to help these people that were slow to progress with their, with their daily lives and things, things like this. So stuff like, you know, making sure that Dan brushes his teeth twice a day or whatever and how to have someone come by and check on that and make a note. And you know, previously it was just all on a on a clipboard with a with a pen and they would mark a check mark or checkbox or something. And so he wouldn't being sort of a computer nerd realized, well, if we had all this data in the database, we could like show like trend lines and charts and stuff. And it could be really powerful. And we could see which techniques are working and which aren't. He took a week off work and built this little database program to manage this because he worked at the institution. He was able to like to get his first client, you know, to convince the people there that maybe they should try this thing and He built this little business, it's never got really huge, but it had several employees for for a while. And so when I was a teenager, I guess when I was 14 or 15, I, I worked as a, as a programmer, you know, building features and stuff for this for this software. And that was really fascinating, because I learned a little bit about, you know, querying a database and so much of programming is you have an array of items, and you need to get those items into a different order or filter them somehow, like that's really that's really all we do. And so it was basically that we were using, like FoxPro, I think was the name of the programming language. That was that was cool as a as a team. And again, like I was getting paid, but could not have been much, but it felt like work. So that was cool to be working. I could see that I was turning code into money in a pretty pretty early stage. Again, I was pretty confident that that was going to be my future. Did

Tim Bourguignon 17:59
you do Feeling you you needed to go through through some formal studies? Or did you want to go the Well, let's continue developing and it's going to work and just continue on this way. How do you How was your your state of mind and how did it turn out to be?

Erik Rasmussen 18:18
Yeah, so so both of my parents have university degrees, and it was always sort of assumed, like when both parents have university degrees that the kid will also go to university. It never even crossed my mind that maybe I could do this without going to higher education, also. So for my last two years of high school, I was selected to go to a to a state boarding school. There were only 250 kids from the state got invited every year, and it was a free state funded boarding school where they had so much funds All of my teachers had PhDs and like, it was that level of just super great education. And it was the hardest two years of my life academically. Like after that four years of university were nothing. It was so formative for me to go to that to that school. And of course, you go there and you're, you know, brushing shoulders with the elite of the elite of smart kids from around the state. So many of my friends from there are like doctors, you know, curing cancer right now, string theorist or something, but they're I, you know, started hanging around with some with some computer nerd kids. And at the, at the end of every school year, you had to do a, sort of a final project and you got a you got a whole week off of classes and you had to build this project, you had to, you know, propose it to someone and they they agreed, and then you got to build it. And for my first year there, I built a mod for the game Doom where the where the map was our school, and The monsters were the teachers. And I actually got I rented I got this is in. This is in 1995. And I got one of the first ever digital cameras from from like the library or the AV part of the school. And I actually had teachers go into this, this white racquetball court where i, where i filmed them at these in these different poses that I could turn into sprites in the game. And then we built the whole these maps of the school, and it was the coolest thing ever like nowadays, obviously, you could not build a first person shooter based on your school because can't do that. But it was really, it was really cool back then. And like the tennis coach would throw like tennis balls at you. And because Doom was so modifiable, it was just, it's just really cool. And of course it it spread like wildfire. You Via floppy disk around the, around the campus, but that was that was pretty fun. My my second senior project there was so ambitious I can't believe we even got close. A friend of mine and I built in Q basic. This was my first foray into Q basic really, we built basically a 3d Pong game sort of like those breakout games where where you have a paddle and there's the ball bouncing down and you have to break the break the tiles, but it was 3d. We never actually got to the point of heck having tiles but we built this thing where we had this, this this ball that was really this, this multi sided polygon 3d thing. So we we read all of these magazines and stuff. And we learned about 3d physics, which is all matrices. I don't know if you've done any 3d programming, but it's all about math and doing these like rotating matrix calculations. And like we learned a whole bunch of about that. And then we had these somehow we had these low level assembly language calls, where like we read up about assembly language and we were writing directly like to the video memory like the V RAM of the computer. And it was just this really crazy low level I can't even I'd get exhausted just thinking about if I had to do that now. But, but we did this thing where there was a ball and we had to you know, do all the mechanics of like collision detection and stuff like that. And so you could bounce this ball around and you could move a little paddle with your mouse and there were some shading involved. It was just crazy, more sophisticated than I would have thought that was that was fun.

Tim Bourguignon 22:43
It was amazing when when you find something that is that is really engaging and fascinating how much you can learn. Just not realizing it just going headfirst in there and and you realize afterwards who leash I Island man matrix manipulation that way. Whoo.

Erik Rasmussen 23:02
Yeah. Right, exactly. Because you think, Oh, I just want to move this thing around the screen. Well, how do I do that? Well, let me look that up. And nowadays with StackOverflow, it's super easy or that we all have these libraries that already do all of the, to build something on the Unreal Engine. You don't have to do any matrix math. Let's just put it that way. So after this, after this boarding school, I went to four year computer science degree, and it was okay. It wasn't that challenging. What was more fun was all those side programming that I was doing in the dorm room. After after class, I specifically remember my data structures course, being really enlightening, and learning about like red black trees and all of this complicated stuff that really in a sophisticated language these days, it's all done for you. Like you don't really need to know how to do merge sort or something like that. Because the best algorithms are just the default ones in whatever language you're using. But it was really cool to learn how that is done and why it's done certain ways, even if it wasn't all that useful. Again, it's not really a point for going to go into college.

Tim Bourguignon 24:15
So, did you find a point? Why are you going to college?

Erik Rasmussen 24:19
Okay, so the reason that university degree means something is that you have a piece of paper that says that you are willing to do things and work on stuff that you don't really want to do, but that someone has told you that you have to do it. Okay. And as an employer, that's a huge benefit to head to head for someone to have a piece of paper proving that they are willing to do work that they don't want to do because someone told them to do it. And if you don't have one of those, you have to prove it some other way. Right? I don't know. I used to roll my eyes so hard at the patterns courses. Like we had these these like object oriented patterns like the facade pattern, and the Actor pattern and these things this was really big when I when I went to school, and I thought that was just so dumb, it wasn't at all related to any programming that I'd ever done on my own. However, that's one of the things that I look back on and realize that Oh, yeah, these are common patterns that appear in code every day at my, my, my work and like they taught it so abstractly, that didn't seem useful. But I once I was able to, like see those patterns in real life. It made more sense that they would teach that but

Tim Bourguignon 25:35
that's, that's interesting. I've, I've lived kind of a similar seeming spring. So I went through CS degree as well, or more general engineering degree with a with a components in in, in computer science. And when I came out of it, I was just so fed up and just complaining all the time and saying he was it was useless now 15 years in my career, I think I started to see somebody It's, which is odd. Yeah, same same exact thing. I'm not sure that was intended. But that's so sweet. It's

Erik Rasmussen 26:07
no and that's the best teachers, when I look back at, you know who the best teachers that you've had, the best teachers are the ones that you hated with a passion when you had them, because they made you do all of this stuff that you thought was like, This is so stupid. Why am I Why am I studying Greek mythology? This is, this is so dumb. Who cares about these ancient gods, whatever, and then you become an adult and you realize that, oh, there's references to all of this mythology, literally everywhere in Western society, you know? So, in in having that knowledge makes you a more competent person. But man, I mean, that's true for math or science or anything. The teachers that really push you really hard are the ones that you hate and the ones that you're the most grateful for

Tim Bourguignon 26:56
and probably remember and you forget all the all the all the others well That's true. That's true too.

Erik Rasmussen 27:02
So anyway, back to back to my journey in my, I guess my junior year of college, that's the third year of four, I was just walking back to my dorm. And for some reason, I will never understand why something caught my eye at the Study Abroad Office, that I had walked by four times every day for four years. And I decided to walk in there and look around and they had these different study abroad options. And one was technical internships in another country, where you could go for a semester and sort of be an intern at some company somewhere and you know, see the world and whatnot. And for some reason, I filled out that form and said, I would like to do this. The company the the organization is I perhaps it is at its International Association for the exchange of students for technical experience. It's a terrible acronym, but They had this they had this program where for tech nerds, you could go and work abroad for for a brief bit. And so I filled that out and months went by and I forgot about it. And then I got a call saying, hey, we've got a, we've got a potential match for you in Denmark. I said, Okay, that wasn't on the that wasn't done, though, on the list of five boxes that I checked of countries I would be interested in, but sure, that seems seems cool. And I said, Yes, I would be interested. And then something else happened. And then I got a call saying that. No, that had fallen through. That's not gonna happen. Oh, well. But then like, another month later, I got another call saying they had another one in Denmark. And they, I guess they gave me some sort of a phone interview. And I distinctly remember when they said, when they asked me what my name was, I said, Eric Rasmussen, that's our a s because I was trained in the US that I have to spell my last name out. And the Danes were like, Yeah, dude, everyone here is named Rasmussen. And so, so anyway, that that went through. And I spent my first half of my final year in college in Copenhagen. And it was a best experience. First of all, it was terrifying. traveling abroad alone when you're, I guess I was 20. And they put me up at a dorm room with a bunch of other tech kids at the Denmark Technical University. And they were all super nice, of course. And it was just a great experience. I met a whole bunch of other people, because when you're studying abroad, oftentimes the other kids that are studying abroad will get together and socialize. And so I met people from all over the world, literally every corner of the of the globe. And that was really eye opening to hear, you know what someone from Ghana thought about, you know, Bill Clinton or something, you know, just just weird conversations and the idea that in some countries, you're not allowed to criticize the government and things like that it was just eye opening for someone that age, I highly recommend studying abroad. But anyway, so there my job was programming in Borland Delphi, or delfy, as they called it, where, like, they had this, this software that was like for security companies. And I was built, but I was building like the website, but I was still using Borland and I was compiling an executable that would sit in the CGI bin of the server. And like it, this the this executable would receive the HTTP request, and then build this string of an HTML document to send back to the client. It's just, you know, gross, but that

Tim Bourguignon 30:44
that's the way the tech was. self made the web server

Erik Rasmussen 30:48
also, that's where I met my future wife, a little Spanish gal that I like the company of, which is why I ended up in Spain. So anyway, I came back to the US and I, my roommate, who actually been my partner on the dotnet 3d Pong project back in high school, had found a job writing in Java with Java Server Pages. I had still had another semester to finish of college. But I basically like he vouched for me as a programmer to get a job right out of college, which was just so lucky and privileged. So I started doing that in Java. And we built this sort of e commerce software. That company wasn't really an e commerce company, but that company sort of got run into the ground by the by the owner and like, we were deep in debt. And like, the accountant guy came over to our desks one day and said, you might want to make sure that you have all your personal belongings when you leave every day because we might come in and the doors might be closed because we are in such debt. So that was kind of scary. Yeah. And there were there were a couple meetings were like, yeah, so we're gonna pay the ones of you that have that are like supporting families, but the other ones, it's going to be another couple weeks. For your paycheck, it's like, okay, red flags. But But anyway, somehow the owner sold that company and all of its debt to another company that was making billing software for mobile services in Germany. This was a huge Java gross Java, spring Java GUI application for billing. It was just the worst thing to work on. But they, but they did. They did somehow send me like to Ireland and Germany and then to Las Vegas to like, do some demos of stuff, which is pretty awesome. But at that point, my wife Couldn't we had were having trouble getting her way to live in the US. And she found a job in England. And I said, Well, I can speak that language. And so I dropped everything and packed a bag and Went, went to go live in England for what ended up being four years and at Just at the last moment where I had to get someone to sponsor a work visa, I found a job and a contract job where I was working. It was Java. We were building pharmaceutical clinical trial management software. But that was interesting because it was I went into a big office building in the center of a big city and I had to wear a tie. And it was that was kind of exciting, you know, for for a little while. But there I had this, this experience. I was like seven months into my 12 month contract, and I was pretty happy I was, I felt like I was making Okay, money. And I was talking to another contractor. Most of the people were employees, but there were a couple other contractors, they're talking to another contractor, and the topic of how much we were making came up and I told him, and he said, Dude, I'm making twice as much as you. You don't understand. Contractors get paid twice as much as salaried employees because they don't have any of the benefits. So you need to Be you need to ask for more money. So I went, I went to the boss and I said I'd like 80% raise or whatever. And he looked me straight in the eye and said Hmm, I was wondering when you were gonna figure this out? What an asshole oh you figured out that we've been paying you half of what your of what everyone else is making. What a jerk.

Tim Bourguignon 34:24
This is nice way to to have a great relationship and keep people longer time.

Erik Rasmussen 34:30
Yeah so turns out when my contract was up, I found a new one. But this was rather than a commute into the city away. It was like a 15 minute drive away. It's the longest commute I've ever had. But they were paying me more money than I've been. I had never made the payment twice as much as what I was making before even after the race so I bought a car and I started traveling 15 minutes commute every way. It was a site building travel booking Thomas Cook sort of you go and you say what's your what, where you want to go and and they should just hotels and stuff. is one of those sites that work wasn't that interesting. And I was in a little in a little cubicle with a little team, my main memory from that job, aside from the horrible commute was a one time boss called us in. And she said, I don't have a lot for you guys to work on right now. But if I tell my boss that, then they're going to start taking you guys off of my team. So what I need you guys to do is to come into work and look like you're working all day long. So that I can justify having this many people on my team. I was just like, what that, like, how this is what corporate life is like. It's just No, no, no, this this is so bad. But anyway, so I was I was fine. I had my own side projects that I could work on, because I've never not had a side project. And so I would come in, I had a way to like, SSH tunnel into my computer at home and I was you know, programming, whatever I was doing. But after six months of a contract with that, I said, No, I can't do that.

Tim Bourguignon 35:58
You cannot do I'll be happy with this, which will be challenging at some point no just time to myself, I guess

Erik Rasmussen 36:06
I then went back to working on a project with some friends I had back in the US. And we were still like that e commerce stuff that we were doing back before the boss ran the company into the into the ground. When that happened, and they got bought, we sort of escaped with that client that we were building the commerce site for. And we sort of started our own little startup building that for them. So we were doing that, but we weren't getting paid at all. At some points. Everyone decided, look, we can't do this anymore. And we told our client and our client said aren't we'll find we will buy you guys and make you actual employees. So I work there building that e commerce site for the next 15 years. We moved to Spain and I was still I was still working there. And you know, it was all stuff that we had built ourselves. We ended up building a CRM system, customer relations management, this thing where when a customer would call in it would pop up a thing on the salesman's screen and with a script that they would go through, and we had this whole decision tree thing that we built for, for how to direct the customer to the right product. We had this other side project where I built this, this website for golf videos, we had this idea because the golf video DVD industry is just rolling in money in America. And we had this idea for somebody had this idea to build this website where it was basically like YouTube, but we had all these comments and you could like comments and basically build Facebook. This was an Angular one, which you know, gross. during these times, I had these side projects, I got annoyed that I would often have a thing that I wanted to share, and I would have to share it on Twitter and then go over to Facebook and share it on Facebook. And then I was annoyed that if I wanted to read other people's stuff, I would have to go to two different websites. And so I had this idea of a social media aggregator that would query the API's of Twitter and Facebook and bring it all together into one view that you could look at. So I built this just this thing on the side. At first it was in jQuery, and then Angular one, it was pretty cool. But eventually the companies shut down those API's and you can't do that anymore. But while they were doing that, I got approached by someone that had this idea to make a social media feed as a personalized video service. This is a site that you go to every day and you watch this video where it's news of the day or I don't know trashy celebrity gossip or something interspersed within that was where the host of the of the show will say, Okay, now let's look at the top pictures that your that your friends shared on Facebook today. In the video over the video, it would display photos from your friends and how many likes they've had and and stuff like this or and then it would say in here are your upcoming your friends upcoming birthdays, it would you know, to tell you these things, sort of like what you might watch, you know, when you're eating your breakfast before going into work, or what a grandmother might watch about, you know, see what their grandkids are up to, or something like that. It never made a whole lot of sense to me as a thing that I would use. But it was kind of cool idea and a really challenging technical thing to do. And this was right when react did come out, I built this thing that would let you they would do this, it would like superimpose the the photos at a particular timestamp in a video over the video that was playing. And it was pretty cool, technically, but it wasn't going anywhere. And that was like that was like before flux that was react with no global state management. It was kind of scary. So anyway, that that was kind of interesting. And then another side project took me over to a thing where I had to build a whole bunch of forms in in react and I looked around and there weren't any, there was no instruction about how to build forms and react the React documents as they still do today. basically tell you how to have one input on a form. And that's it. There's no other guidance. This was right around the time that Redux was becoming super popular because Dan Abramoff had just given this huge talk in in Paris, where he talked about this. And like I'd been watching Redux be born on the side already. And like the reactive flux, there was a slack group, where people were talking about this about different ideas and stuff. And I remember watching Redux be born before it was even announced, it occurred. So it occurred to me I said, Well, I need to store this, these form values for all these different fields somewhere Redux couldn't possibly that couldn't be fast enough. And I sent Dan a message on on the, on the reactive like Slack, I said, Hey, is Redux going to be fast enough to update on every single key press as I'm typing into this form to go and update the global state and then come back and rerender everything and he said, I don't know probably see if it works. And so that was enough. And so I Went tonight. Edie, I built a little Redux reducer to manage form state. And I open sourced it. And it kind of gets scratched an itch that the community had people were looking for a way to manage form state in react, and it became really popular and people had all these different edge cases and all these ideas that never would have occurred to me that you would need a form that you didn't for example, like that you didn't already know the exact seven fields that you were going to have in your form when you were writing it. People said no, we need to be able to add extra fields later. And I'll do this other stuff and and all this different validation logic. And anyway, it became an interesting side project to help the community build forms in in react with Redux. And the people were all pretty nice in the in the open source, and they were all very grateful. And they would come up with their own prs to help fix things. And it was just kind of fun. And I did that for a couple years. And then somebody on Twitter told me, Hey, what about this? What about this guy? He could maybe give a talk at our conference. And I was like, Whoa, whoa, whoa, whoa, I don't know that speaker. What? What are you talking about? And they, they contacted me and they said, Hey, we're looking for a speaker at our conference in Bangalore, India. And I was like, Whoa, it never occurred to me that I would ever go there. And, but I but I said, hell, if you're going to fly me to Bangalore, I will talk for 15 minutes about, about about forms. Sure, I'll do that. They agreed, and I wouldn't get my first conference talk. Here's some some software advice that I got. I attribute this to Pete hunt, who was, you know, big in the, in the early primordial days of react, and for some reason, he was starting some company and my company actually was considering using them and I got on a phone call with him. And I said, Look, I'm up. I'm about to give my my first ever talk. You know if you have any advice because some of his talks are just legendary in the React Webpack world and he said, Look, have you seen the level of speaking ability at these tech talks we take people are so bad at speaking, it's a really low bar, you have to jump over here, which is sort of sort of insulting but also kind of true if you watch a lot of tech talks on on on YouTube. So that was kind of motivating. And I decided, sure I can do this. So anyway, I went did that. And so, Redux form continued to be really popular. But over the years, I did one complete rewrite, where I built the thing from the ground up again, and had all these other suggestions. And why do you have to use Redux? And why do you have to use react and because really, form states in application doesn't depend on react or Angular or jQuery or whatever framework you're using, like you're gonna have, you're gonna have form you're gonna have inputs with values and validation. And you're going to want to know when you're when some fields are dirty, and when some are not or when some fields are valid. So it didn't make sense for a form Libraries state management thing to be tied to any one library. So it occurred to me that maybe I could write one that was just in pure JavaScript, you know, that'll run on on any browser, and then you framework and it'll manage all that stuff for you. And then you could build little wrappers around it to manage other forms data to manage specific framework stuff. And so I did that, and called that final form. And I made a react wrapper called react final form. And it's been pretty popular. People are pretty pleased with it in general. And it's gotten pretty much to the point now in 2020, that most of the use cases because like I went into, I had the advantage of going into this knowing all the 50,000 use cases that people needed for forms because I had managed this other form library. If someone starting out reading a form library in an open sourcing it is not going to know about, Oh, well some people are going to want to validate on blur and then Save on blur, and then have these dynamic array fields, blah, blah, blah, blah, blah. But I had seen all of this. And so I made sure pretty soon after launch, that it could handle all those but in a pluggable way where you didn't necessarily have to have all of that code in your big bundle, if you're just doing a simple form, if you needed to have you know, array fields, you could add on another package that would that would then enable that, that functionality. So that was my goal with that. And it's been fairly popular and it's earned me a couple more conference talks

Tim Bourguignon 45:32
as taking your your day job overtaking your day job yet who

Erik Rasmussen 45:39
I could talk for another hour about open source sustainability. In fact, I have a I have a post a blog post I posted recently that I will give you for links in the show notes but no, no no. Open Source does not pay shit. It is a side gig and I get tremendous intrinsic value. Like I enjoy it. I am so pleased when can save another developer 10 hours of work. And they're grateful for it that feels good. Like there's something intrinsic in that, that makes me feel like I'm making the world better. But then, you know, my library is used by Microsoft and Apple and Google and Cisco, and all of these companies that are making billions of dollars. And none of that comes my way. But that's a separate issue. So anyway, to finish up my developer journey here in 2020, right when the virus was shutting everything down, like I had just given a talk in Sydney, Australia at the end of February, and I flew back in March was when everything went crazy and everything got shut down. And also read in March was when my employer of 15 years, informed me that they had sold part of the company out from under us and that I was being laid off. So right when the market was being flooded with other engineers, I got laid off So that was stressful. But like, I figured, look, if any of this open source effort and fame is worth anything, it should be that I could pretty quickly find a new job if I needed one because people know me. I, I communicate on Twitter regularly with people at really big companies that respect my work. And turns out it wasn't quite as easy as that. I did. I was able to skip a couple of steps on the interview process in some in some places, but I interviewed with several places that had no idea who I was including like the the biggest react form, company type form that allows you to build these sort of nice dynamic forms. They're all based in react and they're in their headquarters is in Barcelona. This is looking looking good for someone living in Spain. And they're their recruiters. were like, yeah, we're gonna go through this whole recruiting process and you know, why do you think You deserve to work here. And I was going through this process where I'm sure that all of the engineers on their staff are familiar with my work. And if they were told, hey, the author of Redux form and final form might be, you know, is applying for a job. They would know something about that. Anyway, they they ended up they ended up turning me down because they refused to hire people in Spain. That worked remotely for some weird technical reason. And there's just like, okay, fine, whatever. Anyway, but I interviewed with some with some pretty big companies like automatic and web flow and those folks and I got some really good offers the highest that they could offer in Spain, but having that blue passport is really worth a lot of money to me. The remote offers to work in the US pay 20 or 30%. More, if not more than that than the than what they can pay in Spain, just because they, for whatever reason, probably better in Germany and France but Spain does not pay their their division. Very well. So anyway, I ended up taking a job at a company that manages the distribution of marijuana in California. That's an interesting turn of events. They actually make software as a service to help the marijuana industry track their orders and stuff. So freshmen really fun.

Tim Bourguignon 49:20
And this is very recent history.

Erik Rasmussen 49:21
Yes, that was in April. Okay. Cool.

Tim Bourguignon 49:25
That's a fantastic story. You there.

Erik Rasmussen 49:28
Yeah. A little long winded but we got there

Tim Bourguignon 49:30
going all over the place. But that's that's the way it should be. That's the way life

Erik Rasmussen 49:33
is man.

Tim Bourguignon 49:34
Yeah. When you look back on it and see in hindsight, the forks and where, where it goes and then the decisions you had to make and to make and how how things evolved. That's, that's always interesting to see and interesting to connect the dots, I think.

Erik Rasmussen 49:49
Yeah, and one thing that I want to leave listeners with is I can trace a direct line through all of my side projects that I was doing for fun. On the side to how they shaped my career. So like that social media aggregator company was just a little thing that I put together. And, of course, it never got anyone anywhere close to having a user base that you could potentially monetize. But that's what got me the connection to the social media video service. And when that failed, that got me into the thing that I was doing building building forms. And that got me into doing open source. And that got me into a place where I was somewhat known in the community such that I could get hired at where I am now. You should always have side projects, basically, because your your day job is probably not going to let you play with the coolest new tech because you're stuck working on something that was built five to 1020 years ago, and that's what they're paying you to do. But at home you can come and build a new thing in in TypeScript or reason or something, just play around and And then maybe introduced that to your to your day job, or maybe just play around. And you know, there's this common thing of learning in public where you can maybe post a video of you coding up a little thing that you that you just learned how to do or a little blog post or something. And little by little, then when someone is looking for someone that knows, whatever new tech you've been playing with, they might give you a call. So always have side projects. And if you can be as public about them as possible, then that's even better.

Tim Bourguignon 51:31
I second this idea. Totally. Thank you for that. So, Eric, where would be the best place to continue this discussion with you and know more about your new marijuana business or anything else? I'm at

Erik Rasmussen 51:47
Twitter, @erikras where that's the best place to talk to me. I guess if I'm plugging things. There's a Final Form that I would like to share. And I've also sort of started like before all of this Corona stuff hit, I started this this form analytics software called Form Nerd that's formnerd.co, that is still not quite out of beta, because, you know, like a hardened 2020. But that's, that's the thing. And I also have a podcast that I do every week with a friend. We're not tech at all we just talk. We have a couple drinks and talk about politics and movies and stuff called HappyHour, Happyhour.fm if we would love more listeners to that.

Tim Bourguignon 52:38
Awesome, thank you very much. Hey, it's been a it's been a blast listening. Just very

Erik Rasmussen 52:41
awesome. Thank you very much for this opportunity. I look forward to listening to further episodes.

Tim Bourguignon 52:45
And this has been another episode of dev journey, and we'll see each other next week. Bye. Sponsor: Even though we developers learn all year long, I still think about September as the back to school time. This time, I am focusing on my Python skills. Dev journey guest number 94 Michael Kennedy is gifting five of you Dear listeners, he's heightened for absolute beginners course to enter the raffle and maybe win one of these five keys. Subscribe to the dev journey newsletter at dev journey dot info slash news during September 2020, and we will pick a winner each week. Good luck.