1. I'm [Caleb](https://calebjay.com/), but other than that I don't even know what I am anymore. I live in Taiwan, people [pay me to write software and lead their software teams](https://calebjay.com/resume.html), I run a [software engineering co-op](https://508.dev), I [hack for civic good](https://g0v.tw/intl/en/), I [take pictures](calebay.com/photos), I [motorcycle quite a bit](https://www.youtube.com/playlist?list=PLz49KNOFH8-lqwB-NBCHrUlYTyn6ij57Q), I'm opening [the only chicken biscuit restaurant in Taiwan](https://thejispot.com/) (so far as we know), I lead a [theme camp](https://komali2.github.io/food-camp-taiwan-burn/) at a renegade Burn (medical team too), I'm helping turn Taidong into [a digital nomad hub](https://ttnomads.circle.so/home), I [write](https://blog.calebjay.com/) about Taiwan, programming, philosophy, and being an engineer. I'm the most obnoxiously leftist person of anyone I know, and I like to bake. I think more than anything else I'm a talker and a helper. If you want to chat about or learn more about how to do anything I know how to do, you can email me. I love getting emails from people. My email is registered to my website calebjay.com, and I'm caleb@ there. Ten years ago I was a student of Creative Writing, after that a teacher, a recruiter, and then around seven years ago snuck my way into software engineering. [Bootcamp grad](https://blog.calebjay.com/tags/bootcamp/). Just about 3 years ago I moved back to Taiwan from SF and now I'm here to stay. Long term I want to get a slab of land and start building [global village construction kit equipment](https://www.opensourceecology.org/gvcs/) and housing for whoever on it. I'm fiendishly passionate about open source everything. If you read Cory Doctorow's ["Walkaway"](https://en.wikipedia.org/wiki/Walkaway_(Doctorow_novel)) maybe you can be too! Short term I'm trying to build out my software engineering co-op, [508.dev](https://508.dev). I got mad that the salaries in Taiwan are arbitrarily low despite engineering skill being identical to anything I found in the USA, so I started pulling in USA rate engineering gigs and then just giving the full rate (-1% for our various expenses) to Taiwanese engineers, effectively giving them 7x their local rate. Turns out that if you do profit sharing, pay people a fair wage, and don't breath down their neck with unnecessary work-from-office policies or arbitrary working hours (we're fully remote and work-however-much-you-please), you can get really good results. Why more people don't do it, I don't know. Another aspect of it is as an engineer you basically must have some kind of portfolio to get work, and a portfolio of nothing but personal projects isn't that impressive. Group projects are best. Massive open source projects are best. A great way to get big impressive group projects is to join up a civic hack project (look up Code For your_country or see if there's a local g0v chapter). Those projects can be overwhelming and intimidating though, especially for juniors, so [we started making simple projects](https://508.dev/engineering.html) that one of the senior engineers project-manages, deploys, architects and etc, so that everyone can quickly and easily get a project for a given programming language or web framework easily on their resume, by working on smaller, more accessible tickets. It's all open source, feel free to go make some commits and stick our projects on your resume! Oh, and I suppose if instead, you're looking for software engineering services, you can go ahead and hire us ;) Other than all that other shit I'm either bicycling on the riverside, hiking, camping, lifting weights, embarrassing myself at a language exchange, or deliberately stepping in front of cars that are breaking the law. 2. Zsa Moonlander for the keyboard! It's wired into some kind of Acer 4k display with an incomprehensible and undocumented KVM function, and from there into one of several machines. A: Desktop dual booting Manjaro and Windows 10. The windows is for editing photos, editing video, producing music, and gaming. Manjaro is for everything else (programming, writing, whatever). Specs are: 12th Gen Intel(R) Core(TM) i7-12700K 3.61 GHz 32GB RAM Nvidia 3080 (I forgot which manufacturer and I'm absolutely too lazy to bend over and find out) 2x 1tb m.2 SSD (one is window's boot and C:\) 2x 2tb SSD (1 for storage, the other runs the linux distro) 1x 4TB HDD (storage) 1x 6TB HDD (storage) Focusrite Scarlett 2i2 plugged into two Fostex monitors + some enormous subwoofer. Arturia minilab mkii for midi keyboard, logitech G502 mouse, ZoomH1N for a mic because the one on my offbrand webcam broke (I also use this to make [ambient sound videos](https://www.youtube.com/watch?v=OuX4rv3mHCQ&) and [free audio recordings](https://freesound.org/people/calebjay/) lol), an ikea standing desk, some chair I bought from some company that went out of business in Taipei, random deskmat I found in Guanghua Digital Plaza. B: Server box running Ubuntu... 18.04 iirc. Will get into software below. Hardware is all used stuff I found at Guanghua: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz 32GB RAM Nvidia 1060 512GB m.2 4x 16TB HDD in Raidz1 for ~51TB redundant storage 2x 5TB HDD in Raidz0 for 10TB nonredundant storage 1x 10TB HDD for local "backup" and samba drive Other things that might be plugged into monitors: C: Laptop: thinkpad t14 gen1 AMD Ryzen 7 Pro 4750U 16GB RAM 2TB SSD (personally installed) 1080p nonglare brighter-than-stock panel (personally installed) Dual booted in windows 10 and Manjaro D: Steam Deck 512gb, no modifications. E: A PoS macbook pro for when someone wants me to do something that requires OSX (puke). Everything is wired over 1Gbit/s ethernet into a switch, and from there to a router downstairs. Yes, the switch and single cord to the router is a bottleneck, I'm collecting fiance points until I have enough to run two cables. Our actual uplink to our ISP is 100Mbit/s. We pay like 20$/month for this, did I mention you should consider moving to Taiwan? In that pile of cords is also a Raspberry Pi... something, running ubuntu and functioning basically just as a node for Syncthing and some other random local-only tasks. I used to run some random software on it until I built the server. Photos taken on a Fuji XT-5 usually with the 28mm f1.4 (an obscene combo), sometimes the 35mm f2, sometimes the 18-55m. Backup camera is the Fuji xe2 which remains a perfectly serviceable camera even today. Shoot in jpeg+raw, usually use pictures straight out of camera because editing was ruining the hobby for me. More on software below. Videos taken on Gopro Hero 11 mounted on a chin mount on motorcycle. I realized my motorcycle videos are boring and I need more dynamic angles so I'm working on other mount points. Exhaust sound captured on the zoom H1n strapped onto the back seat. Motorcycle in Taiwan is a Yamaha MT-07. In SF it was a Suzuki SV-650. Fiance's is a Ninja400 that I borrow ( steal ) *constantly*. To the left of the desk is Richard in his house of glass. He is a fat and lazy bearded dragon that glares at me from his stick all day while I work. [Here's a video of him runnin around](https://www.youtube.com/watch?v=SA29JsvoU9w). Sometimes I use one of the random keyboards I've built, like a Corne keyboard, but my soldering sucks so they're always unreliable. 1. Software. Strap in. Programming, Email, Notes, Journaling, Blogging, TODOing, Time Tracking: Emacs, using Vim bindings, through [Spacemacs](https://develop.spacemacs.org/). [I do everything in emacs](https://blog.calebjay.com/posts/my-emacs-environment/). This is what kicked my whole keyboard quest off: I was getting RSI really early in my career, and my first gig had a Vim greybeard. I tried to set up Vim with some features I liked from vscode like searching within a project and etc, but it was annoying to set up, and also org-mode is amazing, so, emacs with vim bindings. OS: I use Manjaro because "Free as in Freedom" is better than OSX's "You'll Do As You're Told, Swine." Also because OSX's window management drives me literally insane. For those of you with 50 windows open on a single desktop, each of which taking up not-quite-all-your-desktop-size, you paid 3k for that screen and you aren't even gonna use the whole thing? I use i3 as a window manager. Windows I use begrudgingly because Fuji and Ableton don't run on anything else I can run on this PC, and also because I sometimes game. Gaming: Steam. I have my entire steam library installed locally. It's approximately 12TB of space. I have Moonlight / Sunshine running so I can stream to my phone (Zenfone 9), Steam Deck, or Steam Link at the downstairs couch. Game streaming is a topic [I'm randomly passionate about](https://steamcommunity.com/discussions/forum/11/3820780968121968671). On Taiwan 5g I can stream with no stutter or noticeable input lag from anywhere in the country, it's incredible. You should consider moving here. I have all my games installed both in case Steam/Valve goes under, but also in case global capitalism fails before I can get my character in Baldur's Gate 3 laid, in which case I'll still need to be able to game for a bit. I also run like 9 emulators on my machine, for everything from NES up through PS3, Switch, etc (there's no laws about emulation in Taiwan, don't even try it, Nintendo). I acquired all my games legally. They account for another like 500GB of space. On my PC I zip them into my steam library for easy streaming using [Steam ROM Manager](https://github.com/SteamGridDB/steam-rom-manager). On my Steamdeck I just use [Emudeck](https://github.com/dragoonDorise/EmuDeck). Photo editing: [ Fuji X Studio ](https://fujifilm-x.com/en-us/support/download/software/x-raw-studio/) because I just don't want to spend that much time editing anymore, and I like fuji's film sims. When I really need to get into it, I use [ Darktable ](https://www.darktable.org/). My photos are organized with [digiKam](https://www.digikam.org/). There are over 20TB spread over, like, 16 years. Video editing: [kdenlive](https://kdenlive.org/en/) Browser: Brave browser, cause its Javascript engine and dev tools are just better than Firefox's (it's just Chromium after all), but it still respects user privacy. Also their [Goggles](https://search.brave.com/help/goggles) tool is a fascinating solution to the problem of [surveillance capitalism](https://en.wikipedia.org/wiki/Surveillance_capitalism) through web search. The Server: Aight so here's an addiction I failed to mention above: self hosting. I'll regularly scroll through the [Awesome Self Hosting](https://github.com/awesome-selfhosted/awesome-selfhosted) list and just deploy stuff on it. Some kind of combination of my addiction to archival and my general distrust of large corporations compels me to do this. I have spent hundreds if not thousands of hours. My fiance finds our electric bill "concerning." * [ZFS](https://wiki.archlinux.org/title/ZFS): Filesystem, allows for easily setting up redundant arrays like raidz1 and managing them. * [Syncthing](https://syncthing.net/): decentralized and continuous file sync program. Syncs my ROM saves around from my PC to my phone (for the smaller emulators) to my Steamdeck (for all the emulators), my org notes, and my handwritten notes from my Onyx Boox to all my devices (onyx automatically converts them to PDFs, it's lit). * Nginx: Reverse proxy for like the 30 services I run. I just expose port 80 and 443 on our network to the server, and then reverse proxy to whatever port the software I'm deploying needs. [I've written briefly about this](https://508.dev/blog/posts/new-project-creation.html) for our junior devs at 508. * [ddclient](https://ddclient.net/): Your computers at home are issued IP addresses by your ISP. Unlike servers that host websites like wikipedia.org or whatever else, these IP addresses might change frequently upon the whim of your ISP. If that happens, your DNS records that say "wikipedia.org equals 103.102.166.224" stops routing correctly. So ddclient will continually monitor your ip address, and if it changes, will use your domain provider's service for changing the IP for a given DNS record (if it has such a service, such as google or cloudflare). * [Audiobookshelf](https://github.com/advplyr/audiobookshelf): Audiobook server, self hosted Audible alternative. Even has an android app! But the web client works fine too. * [calibre-web](https://github.com/janeczku/calibre-web): Ebook reading and download client, OPDS server, running off of a local [Calibre]((https://calibre-ebook.com/) instance. Calibre also, once a week, grabs an RSS feed of a bunch of blogs and whatnot I follow, turns them into an epub, and broadcasts them via OPDS so I can download them on my various readers, usually using Libera reader. * [dudle](https://github.com/kellerben/dudle): Simple event time polling software * [Mobilizon](https://joinmobilizon.org/en/): Self hosted alternative to meetup / facebook events. I use it to plan all the random shit we get up to in Taiwan. * [Freshrss](https://freshrss.org/index.html): Web reader for my RSS feeds list. Clean. * [Jellyfin](https://jellyfin.org/): the beast, a straight up Netflix alternative on which I host my legally acquired movies and TV shows for streaming from wherever. Has native apps for many devices. Unbelievable software. This is why I have the GPU in the server: video transcoding. * [Komga](https://komga.org/): Web comic book reader for my legally acquired comic book scans. * [Navidrome](https://www.navidrome.org/): Spotify alternative, music streaming. Compatible with Subsonic API so many native clients. * [Nextcloud](https://nextcloud.com/): Google Docs / Drive alternative. An absolute RAM hog, mostly because of Tensorflow. I disabled that for now. 4. Keyboard layout: https://configure.zsa.io/moonlander/layouts/vJgor/latest/0 I use QWERTY, and my goal was to never stray from home row, plus I wanted to stay on keyboard literally always so I have mouse bindings as well. My right thumb is my only spacebar thumb, and I use either my left pinky or left thumb to activate numbers and symbols layer. Symbols just map "one level down," so asdf is 1234, qwert is !@#$, etc. Layer 2 is navigation either by keyboard or mouse. "Game mode" is a toggle mode where the keyboard is "more normal" for things like gaming. I'm strongly considering mapping wasd one "column" right for a secondary game mode, because I find the ortholinear shape of the normal Moonlander wasd to be a bit uncomfortable. I've been using the layout for maybe a year now and it's ok, though I'm thinking of changing some things about the symbols, as even to this date I'll still mis-hit ) when I want (, or } instead of {, among other issues mostly around symbols. I added those [3d printed legs](https://www.thingiverse.com/thing:4688862) for the thumb cluster to give me more left/right tilt (yaw?), and it works okay, though it somewhat exacerbates my only issue with the Moonlander, namely that the thumbcluster always, eventually, succumbs to my aggressive smashing, and I have to re-tighten it. But without the legs the yaw of the keyboard was dependent on the tilt of the thumbcluster, and for maximum tilt (comfortable yaw) my thumb was reaching across orbit to get to the enter key, which was painful. I 3d printed them at [Fablab Taipei](https://goo.gl/maps/JpZtCa5vjaEq1vvY7), if you're a hacker, or not, you should come hang. Keycaps are normal, and I think I have Kailh Box Blacks in there. I recently lubed them all, which took a couple episodes of The Bear to accomplish. I don't recommend doing this: once you do it once, you can *never* go back, it's just night and day so much better lubed. [Here's a somewhat poorly recorded video of how it sounds lubed vs unlubed](https://www.youtube.com/watch?v=W_WpIGRmmJM) (desk mat makes a HUGE improvement in sound). 5. Dream setup TBH I think I already got it: I live in Taiwan and work from a desk that has everything I need and is ergonomic. I have all my hardware projects (toys) at hand, I can watch my lizard watch me all day, and there's an espresso machine downstairs. Our walls, floor, and ceiling are thick concrete, so I crank the sub without my neighbors having any idea. Whenever I feel like it I can go to one of the billions of awesome cafes we have in Taipei (usually with a crew, we have a coworking squad). Sometimes we'll even motorcycle to a beachside cafe or mountain cafe, a mere 20 minutes to an hour and a half ride, depending. You should consider moving to Taiwan. We have boba tea and socialized healthcare. The only thing I'd change is it would be nice if my portable setup was more ergonomic. I got the split Corne with the choco flat switches that's hella portable and that helps if I have the table space for it at a cafe, but there's no getting around that when you're looking at a laptop you're staring down, and it's rare for cafes to have standing counters. So cafe days I'm straining after a couple hours. addendum info: 1. (see google photos album) https://photos.app.goo.gl/caUnz9nQE47Aj62Z9 Dealer's choice, it's your website, though I think me eating a fuckhuge bagel best captures my vibe 2. (see google photos album) 3. god I have no idea anymore... how about "Software Engineer and Other Stuff Too" 4. https://calebjay.com 5. he him his etc I also included some pictures of Richard in the album, cause he's a fat cutiepie. When he's on his stick with all arms dangling we call it "full sploot." Just laying his on his fat belly on that stick, what a mood. I also put some photos in of one of the awesome coworking situations we can get at a cafe in Jiufen, Taiwan. More people should visit here :D