I went to BullMQ for my AI Agents (Bad Hair Cut)

Build in Public · Feb 03 · Episode 43
all right this is my daily update for my all right this is my daily update for my all right this is my daily update for my build and public log it’s February 2nd build and public log it’s February 2nd build and public log it’s February 2nd 2025 y’all I’m I’m feeling just so burnt 2025 y’all I’m I’m feeling just so burnt 2025 y’all I’m I’m feeling just so burnt out and frustrated today out and frustrated today out and frustrated today uh I have uh I have uh I have spent quite a bit of time trying to get spent quite a bit of time trying to get spent quite a bit of time trying to get this trigger dodev working selfhosted uh this trigger dodev working selfhosted uh this trigger dodev working selfhosted uh on my own server so I’m trying to I’m on my own server so I’m trying to I’m on my own server so I’m trying to I’m trying to get this working on my terms trying to get this working on my terms trying to get this working on my terms on my server where I could tweak on my server where I could tweak on my server where I could tweak anything I want anything I want anything I want and you know I’ve reached the point and you know I’ve reached the point and you know I’ve reached the point where it’s like it doesn’t make sense to where it’s like it doesn’t make sense to where it’s like it doesn’t make sense to keep uh chugging along and and and keep uh chugging along and and and keep uh chugging along and and and spinning my wheels and burning time spinning my wheels and burning time spinning my wheels and burning time valuable time I need to get moving and I valuable time I need to get moving and I valuable time I need to get moving and I need to get moving much faster uh so I need to get moving much faster uh so I need to get moving much faster uh so I kind of time boxed getting this set up kind of time boxed getting this set up kind of time boxed getting this set up and I’ve like blown way past that that and I’ve like blown way past that that and I’ve like blown way past that that time that I put so why why am I turning time that I put so why why am I turning time that I put so why why am I turning self poost um so I let’s just look at it self poost um so I let’s just look at it self poost um so I let’s just look at it really quick really really quick so they really quick really really quick so they really quick really really quick so they have a $10 a month hobby have a $10 a month hobby have a $10 a month hobby plan plan plan I tested this already that’s not going I tested this already that’s not going I tested this already that’s not going to fly 25 concurrent runs is not it’s to fly 25 concurrent runs is not it’s to fly 25 concurrent runs is not it’s not going to do it my my use case is way not going to do it my my use case is way not going to do it my my use case is way heavy and I would heavy and I would heavy and I would need uh right off the right out of the need uh right off the right out of the need uh right off the right out of the gate right off the bat I would need the gate right off the bat I would need the gate right off the bat I would need the $50 plan this is not going to cut it uh $50 plan this is not going to cut it uh $50 plan this is not going to cut it uh I already I got it up and running on my I already I got it up and running on my I already I got it up and running on my server well enough to to know that’s the server well enough to to know that’s the server well enough to to know that’s the case um it looks very promising this case um it looks very promising this case um it looks very promising this service I so I so wanted to use it um I service I so I so wanted to use it um I service I so I so wanted to use it um I got really far but here’s what I didn’t got really far but here’s what I didn’t got really far but here’s what I didn’t like and this is why I wanted to self like and this is why I wanted to self like and this is why I wanted to self host and this is what I wanted to host and this is what I wanted to host and this is what I wanted to briefly talk about look at the briefly talk about look at the briefly talk about look at the computer my box that I’m running computer my box that I’m running computer my box that I’m running on would be this one on would be this one on would be this one probably close to this box I have 16 probably close to this box I have 16 probably close to this box I have 16 gigabytes of RAM it’s it’s a fairly gigabytes of RAM it’s it’s a fairly gigabytes of RAM it’s it’s a fairly beefy uh VPS server that I’m running on beefy uh VPS server that I’m running on beefy uh VPS server that I’m running on it’s not super cheap I think I’m paying it’s not super cheap I think I’m paying it’s not super cheap I think I’m paying like $35 a month it’s it’s pretty legit like $35 a month it’s it’s pretty legit like $35 a month it’s it’s pretty legit box that can handle a lot look at like box that can handle a lot look at like box that can handle a lot look at like let’s just Analyze This quickly I have let’s just Analyze This quickly I have let’s just Analyze This quickly I have you know $50 a month but I wouldn’t be you know $50 a month but I wouldn’t be you know $50 a month but I wouldn’t be running on anything under under this box running on anything under under this box running on anything under under this box and look look at look okay so I’m trying and look look at look okay so I’m trying and look look at look okay so I’m trying to build an API service think about how to build an API service think about how to build an API service think about how much this thing could run it could be much this thing could run it could be much this thing could run it could be running 247 with with people hitting running 247 with with people hitting running 247 with with people hitting this thing all day if if I was even this thing all day if if I was even this thing all day if if I was even remotely successful even I’m going to be remotely successful even I’m going to be remotely successful even I’m going to be using it so you know you’re looking at quite and quite and quite and expensive uh you know probably would expensive uh you know probably would expensive uh you know probably would wouldn’t be utilized that much but the wouldn’t be utilized that much but the wouldn’t be utilized that much but the my point is this this would get very my point is this this would get very my point is this this would get very pricey very very pricey for my use case pricey very very pricey for my use case pricey very very pricey for my use case looks great I want to use this for looks great I want to use this for looks great I want to use this for something else but uh for my use case I something else but uh for my use case I something else but uh for my use case I just I just if I can’t sell post it’s just I just if I can’t sell post it’s just I just if I can’t sell post it’s not going to be an option so what did I not going to be an option so what did I not going to be an option so what did I do what have I been working on I I went do what have I been working on I I went do what have I been working on I I went back to I went back to when I started back to I went back to when I started back to I went back to when I started with actually I started using bull JS with actually I started using bull JS with actually I started using bull JS and this is like version two major major and this is like version two major major and this is like version two major major rewrite um it’s called bull rewrite um it’s called bull rewrite um it’s called bull mq what is bull mq it’s very similar um mq what is bull mq it’s very similar um mq what is bull mq it’s very similar um well kind of similar it is a Qing well kind of similar it is a Qing well kind of similar it is a Qing system uh in node it’s like pretty fast system uh in node it’s like pretty fast system uh in node it’s like pretty fast very robust um easy to scale is a huge very robust um easy to scale is a huge very robust um easy to scale is a huge one now I talked about this in another one now I talked about this in another one now I talked about this in another video you don’t want to go crazy with video you don’t want to go crazy with video you don’t want to go crazy with premature optimization everyone builds premature optimization everyone builds premature optimization everyone builds something with zero users thinking well something with zero users thinking well something with zero users thinking well people like me like software Engineers people like me like software Engineers people like me like software Engineers are really bad at are really bad at are really bad at you you’re like I want this thing built you you’re like I want this thing built you you’re like I want this thing built so it will scale up to you know 1 so it will scale up to you know 1 so it will scale up to you know 1 million users now that’s a mistake just million users now that’s a mistake just million users now that’s a mistake just get the thing launched get a basic get the thing launched get a basic get the thing launched get a basic simple version but you also like want to simple version but you also like want to simple version but you also like want to build it in a way that you you don’t build it in a way that you you don’t build it in a way that you you don’t want to be completely dumb about it like want to be completely dumb about it like want to be completely dumb about it like you want to at you want to at you want to at least have some kind of trade-off where least have some kind of trade-off where least have some kind of trade-off where you this thing can’t scale if you really you this thing can’t scale if you really you this thing can’t scale if you really really needed to so I I think this is a really needed to so I I think this is a really needed to so I I think this is a good midal ground using this this this good midal ground using this this this good midal ground using this this this can and this can scale it’s pretty can and this can scale it’s pretty can and this can scale it’s pretty pretty battle tested uh so I started pretty battle tested uh so I started pretty battle tested uh so I started implementing this instead because I just implementing this instead because I just implementing this instead because I just cannot I cannot afford 50 plus dollars a cannot I cannot afford 50 plus dollars a cannot I cannot afford 50 plus dollars a month for something that doesn’t make month for something that doesn’t make month for something that doesn’t make money I I keep expenses really low had money I I keep expenses really low had money I I keep expenses really low had to be Scrappy yeah it’s just you got to to be Scrappy yeah it’s just you got to to be Scrappy yeah it’s just you got to do it all yourself so the thing the do it all yourself so the thing the do it all yourself so the thing the thing with services like trigger. de thing with services like trigger. de thing with services like trigger. de this abstracts away all this stuff you this abstracts away all this stuff you this abstracts away all this stuff you know they are doing all this stuff know they are doing all this stuff know they are doing all this stuff they’ll scale if you’re using their they’ll scale if you’re using their they’ll scale if you’re using their Cloud version they’ll scale for you they Cloud version they’ll scale for you they Cloud version they’ll scale for you they just abstract all these things you know just abstract all these things you know just abstract all these things you know r i mean that’s you know that’s that’s r i mean that’s you know that’s that’s r i mean that’s you know that’s that’s what you’re paying for so I have a basic what you’re paying for so I have a basic what you’re paying for so I have a basic version of this working locally I’ve version of this working locally I’ve version of this working locally I’ve already refactored so I was looking at already refactored so I was looking at already refactored so I was looking at this Library you kind of Bolt and slop this Library you kind of Bolt and slop this Library you kind of Bolt and slop on top of um bulling Q to to try to on top of um bulling Q to to try to on top of um bulling Q to to try to manage and Visually see manage and Visually see manage and Visually see all the uh all the things all the uh all the things all the uh all the things here um so I started playing around with here um so I started playing around with here um so I started playing around with this and I’m working this and I’m working this and I’m working towards uh getting getting bull mq stood towards uh getting getting bull mq stood towards uh getting getting bull mq stood up fully working and using that up fully working and using that up fully working and using that instead uh I didn’t quite make it to my instead uh I didn’t quite make it to my instead uh I didn’t quite make it to my goal my goal was to have everything on goal my goal was to have everything on goal my goal was to have everything on the server running and me like actually the server running and me like actually the server running and me like actually calling the API endpoint um from from my calling the API endpoint um from from my calling the API endpoint um from from my product that I’m building AI chat email product that I’m building AI chat email product that I’m building AI chat email but I didn’t get there and um I got but I didn’t get there and um I got but I didn’t get there and um I got really stuck on self hosting devop stuff really stuck on self hosting devop stuff really stuck on self hosting devop stuff and I just need to keep moving so this and I just need to keep moving so this and I just need to keep moving so this is working this is free I know this will is working this is free I know this will is working this is free I know this will work really well in the server I already work really well in the server I already work really well in the server I already have this working in live bull JS have this working in live bull JS have this working in live bull JS working in AI chat email already so I working in AI chat email already so I working in AI chat email already so I know I’m familiar with it uh I need to know I’m familiar with it uh I need to know I’m familiar with it uh I need to keep flying ahead so I’m I’m gonna go do keep flying ahead so I’m I’m gonna go do keep flying ahead so I’m I’m gonna go do that tomorrow I’m burnt out I’m M my that tomorrow I’m burnt out I’m M my that tomorrow I’m burnt out I’m M my brain is frazzled I didn’t sleep well brain is frazzled I didn’t sleep well brain is frazzled I didn’t sleep well the last few days i’ I worked on this the last few days i’ I worked on this the last few days i’ I worked on this quite a bit already I’m just going to quite a bit already I’m just going to quite a bit already I’m just going to call it quits until tomorrow pick it call it quits until tomorrow pick it call it quits until tomorrow pick it back up and start back up and start back up and start fresh well that’s my update for today fresh well that’s my update for today fresh well that’s my update for today and on to my random story for the day I and on to my random story for the day I and on to my random story for the day I have a pretty funny story uh the other have a pretty funny story uh the other have a pretty funny story uh the other so I got a the other day I got a really so I got a the other day I got a really so I got a the other day I got a really bad haircut that’s why I keep fiddling bad haircut that’s why I keep fiddling bad haircut that’s why I keep fiddling with my hair I got a bad haircut and I with my hair I got a bad haircut and I with my hair I got a bad haircut and I hate when you get a bad haircut you hate when you get a bad haircut you hate when you get a bad haircut you you’re like I’m stuck looking like you’re like I’m stuck looking like you’re like I’m stuck looking like this with this bad haircut for like at this with this bad haircut for like at this with this bad haircut for like at least several weeks to a least several weeks to a least several weeks to a month um not the worst not the worst month um not the worst not the worst month um not the worst not the worst haircut I’ve I’ve gotten uh I haircut I’ve I’ve gotten uh I haircut I’ve I’ve gotten uh I remember one time when I was in Ethiopia remember one time when I was in Ethiopia remember one time when I was in Ethiopia yeah yeah yeah Ethiopia that was quite I have a lot of Ethiopia that was quite I have a lot of Ethiopia that was quite I have a lot of stories from those days but I’m sticking stories from those days but I’m sticking stories from those days but I’m sticking to the story today uh I had a mop on my to the story today uh I had a mop on my to the story today uh I had a mop on my head I needed a haircut so bad I head I needed a haircut so bad I head I needed a haircut so bad I look like a walking mop and my friend I look like a walking mop and my friend I look like a walking mop and my friend I was with we we were roaming around the was with we we were roaming around the was with we we were roaming around the country for like over a month my friend country for like over a month my friend country for like over a month my friend told me you look like a used car told me you look like a used car told me you look like a used car salesman from like the late 70s and I salesman from like the late 70s and I salesman from like the late 70s and I was like was like was like okay yeah trust me I hate it too I need okay yeah trust me I hate it too I need okay yeah trust me I hate it too I need a haircut so I had to find a a haircut a haircut so I had to find a a haircut a haircut so I had to find a a haircut in Adis Ababa the capital in Adis Ababa the capital in Adis Ababa the capital city and I was like how how where city and I was like how how where city and I was like how how where am I going to go so I found a place am I going to go so I found a place am I going to go so I found a place close to where I was staying at as nice close to where I was staying at as nice close to where I was staying at as nice as I could find in that area like kind as I could find in that area like kind as I could find in that area like kind of a weird Mall thing place it’s very of a weird Mall thing place it’s very of a weird Mall thing place it’s very strange hard to describe uh it’s like strange hard to describe uh it’s like strange hard to describe uh it’s like kind of a Mall picture like a African kind of a Mall picture like a African kind of a Mall picture like a African Mall kind of Mall kind of Mall kind of place and I go in there and they look at place and I go in there and they look at place and I go in there and they look at me you know me you know me you know like oh look at this guy walking in like oh look at this guy walking in like oh look at this guy walking in here he’s like hey can I get someone to here he’s like hey can I get someone to here he’s like hey can I get someone to cut my cut my cut my hair and they looked at me you know dear hair and they looked at me you know dear hair and they looked at me you know dear dear and a headlight kind of like look dear and a headlight kind of like look dear and a headlight kind of like look and they said hold on and the guy walks and they said hold on and the guy walks and they said hold on and the guy walks away and he goes and talks to somebody away and he goes and talks to somebody away and he goes and talks to somebody else and I I look over and I see him else and I I look over and I see him else and I I look over and I see him talking having a powa with someone and talking having a powa with someone and talking having a powa with someone and they’re both looking over at me talking they’re both looking over at me talking they’re both looking over at me talking another guy comes and he and I talk to another guy comes and he and I talk to another guy comes and he and I talk to him hey you know look I need a haircut him hey you know look I need a haircut him hey you know look I need a haircut just something simple uh and he goes just something simple uh and he goes just something simple uh and he goes hold on and he goes and joins the group hold on and he goes and joins the group hold on and he goes and joins the group now there’s like three of them in the now there’s like three of them in the now there’s like three of them in the corner looking at me like talking like corner looking at me like talking like corner looking at me like talking like trying to just figure out what what the trying to just figure out what what the trying to just figure out what what the hell to do with me the white guy wanting hell to do with me the white guy wanting hell to do with me the white guy wanting his haircut and then finally a guy his haircut and then finally a guy his haircut and then finally a guy comes and he goes okay come with comes and he goes okay come with comes and he goes okay come with me I’m walking through this for for a me I’m walking through this for for a me I’m walking through this for for a atest this is like you know it’s atest this is like you know it’s atest this is like you know it’s obviously an upscale place you know what obviously an upscale place you know what obviously an upscale place you know what I mean for for that for there and I’m I mean for for that for there and I’m I mean for for that for there and I’m walking through and it’s pretty big walking through and it’s pretty big walking through and it’s pretty big place there’s a bunch of people getting place there’s a bunch of people getting place there’s a bunch of people getting there HC and all the eyes you know are there HC and all the eyes you know are there HC and all the eyes you know are like looking turned to me in the mirror like looking turned to me in the mirror like looking turned to me in the mirror and everyone’s looking at me I am the and everyone’s looking at me I am the and everyone’s looking at me I am the only white person in this place of only white person in this place of only white person in this place of course obviously I’m in the middle of course obviously I’m in the middle of course obviously I’m in the middle of you know Addis Ababa and everyone is you know Addis Ababa and everyone is you know Addis Ababa and everyone is looking and I sit down and the guy he looking and I sit down and the guy he looking and I sit down and the guy he runs to somebody else and he has another runs to somebody else and he has another runs to somebody else and he has another little powow then another guy comes by little powow then another guy comes by little powow then another guy comes by and people are kind of like trying not and people are kind of like trying not and people are kind of like trying not to laugh to laugh to laugh me and I’m just sitting there like oh my me and I’m just sitting there like oh my me and I’m just sitting there like oh my God this is going to be a really rough God this is going to be a really rough God this is going to be a really rough haircut and the guy you know he’s like haircut and the guy you know he’s like haircut and the guy you know he’s like looking oh my god um trying to figure looking oh my god um trying to figure looking oh my god um trying to figure out how the hell to cut my hair they not out how the hell to cut my hair they not out how the hell to cut my hair they not used to cutting non black African used to cutting non black African used to cutting non black African people’s hair they’re just not and so people’s hair they’re just not and so people’s hair they’re just not and so the guy was like so lost and he props to the guy was like so lost and he props to the guy was like so lost and he props to this guy he went for he tried he props this guy he went for he tried he props this guy he went for he tried he props to him he was the brave one no one else to him he was the brave one no one else to him he was the brave one no one else wanted to do it but this guy was Brave wanted to do it but this guy was Brave wanted to do it but this guy was Brave and so he just starts you know no and so he just starts you know no and so he just starts you know no scissors just straight up uh if you’re a scissors just straight up uh if you’re a scissors just straight up uh if you’re a guy and you have short hair you know you guy and you have short hair you know you guy and you have short hair you know you obviously get your haircut with scissors obviously get your haircut with scissors obviously get your haircut with scissors no scissors he just you know hacked it no scissors he just you know hacked it no scissors he just you know hacked it to death with the with the with the um to death with the with the with the um to death with the with the with the um sh you know shaver the the electric sh you know shaver the the electric sh you know shaver the the electric shaver he hacked this thing to death and shaver he hacked this thing to death and shaver he hacked this thing to death and I was trying so hard not to laugh at one I was trying so hard not to laugh at one I was trying so hard not to laugh at one point and other people kept walking by point and other people kept walking by point and other people kept walking by saying stuff to him and you know saying stuff to him and you know saying stuff to him and you know laughing and giggling and everyone was laughing and giggling and everyone was laughing and giggling and everyone was looking at me looking at me looking at me and it was horrible it was and it was horrible it was and it was horrible it was horrible horrible this haircut but you horrible horrible this haircut but you horrible horrible this haircut but you know the guy he did his best and it at know the guy he did his best and it at know the guy he did his best and it at least I didn’t look like a mop anymore least I didn’t look like a mop anymore least I didn’t look like a mop anymore but it was so goddamn bad probably the but it was so goddamn bad probably the but it was so goddamn bad probably the worst haircut I’ve ever had in my life worst haircut I’ve ever had in my life worst haircut I’ve ever had in my life it was so bad y’all pretty not this it was so bad y’all pretty not this it was so bad y’all pretty not this haircut is not too far off I mean I haircut is not too far off I mean I haircut is not too far off I mean I don’t have it done but this haircuts don’t have it done but this haircuts don’t have it done but this haircuts pretty bad too but yeah it was rough and pretty bad too but yeah it was rough and pretty bad too but yeah it was rough and uh uh uh my friend just when I when I met back up my friend just when I when I met back up my friend just when I when I met back up with my friend he just started laughing with my friend he just started laughing with my friend he just started laughing he like where did you get that haircut he like where did you get that haircut he like where did you get that haircut that I told him the story and he’s like that I told him the story and he’s like that I told him the story and he’s like yeah that that that makes sense he’s yeah that that that makes sense he’s yeah that that that makes sense he’s like thank God I’m you know I’m going like thank God I’m you know I’m going like thank God I’m you know I’m going bald and I just shave it all off he’s bald and I just shave it all off he’s bald and I just shave it all off he’s like mine’s much easier to to look okay like mine’s much easier to to look okay like mine’s much easier to to look okay yeah you yeah off you know they like yeah you yeah off you know they like yeah you yeah off you know they like robbed me basically because it was I robbed me basically because it was I robbed me basically because it was I don’t know was like5 US dollars or don’t know was like5 US dollars or don’t know was like5 US dollars or something and you know they probably pay something and you know they probably pay something and you know they probably pay like a dollar you know you know I paid like a dollar you know you know I paid like a dollar you know you know I paid through the roof and much more than they through the roof and much more than they through the roof and much more than they they the locals do but that’s okay I I they the locals do but that’s okay I I they the locals do but that’s okay I I was happy I got my haircut it looked was happy I got my haircut it looked was happy I got my haircut it looked like but like but like but uh you know you got to do what you got uh you know you got to do what you got uh you know you got to do what you got to do to do to do so anyways that’s all I got for today so anyways that’s all I got for today so anyways that’s all I got for today I’m going to go rest get the hell away I’m going to go rest get the hell away I’m going to go rest get the hell away from the screen I need to just like I from the screen I need to just like I from the screen I need to just like I need to take a serious break from the need to take a serious break from the need to take a serious break from the from the computer screen today actually from the computer screen today actually from the computer screen today actually I don’t look at any screen for the rest I don’t look at any screen for the rest I don’t look at any screen for the rest of the day so see you all tomorrow

Description

Today’s progress:

  • Performance tuning
  • Security enhancements
  • System monitoring setup

Summary

Summary of the Video: Daily Update: Build and Public Log, February 2, 2025. The creator shares challenges with self-hosting an API service, details the switch from a costly cloud option to bull mq, and explains the need to keep expenses low. The video ends with a humorous recount of a bad haircut experience in Ethiopia.

AI with Steve build in public

Subscribe to stay up to date