I am refitting a 44-foot sailboat, repowering it with an electric motor and lithium batteries; solar panels and a wind generator to come. Lots of practical work with my hands: wiring, plumbing, carpentry, fiberglass, sewing, drilling, sanding, wrenching, tinkering. After decades of complicated software efforts, a majority of which have never gone anywhere, it feels really satisfying to build things that you can see and touch, that stay built once you're done with them, useful in a way you can experience. Someday in the near future we'll set sail and go see more of the world - generating our own power, our own propulsion, our own fresh water; living by the sun and the wind and the waves, embedded in the natural world.
We don't have a blog. That's a good idea! We'd planned to make videos for youtube, but so far it's been too much additional work to film ourselves while we work, and we haven't made it happen.
I'd be happy to go on about the project in as much detail as you please! Email me? Tried the address hinted at in your profile, but it bounced.
I would also love to hear from you, I've been collecting books on sailing and starting to learn the ins and outs and hope to sail coast to coast sometime in the next few years. Moxie's sailing documentary, Hundred Rabbits and other projects have left a big impression on me. I'd love to network with like-minded people and hear how things progress.
I'm learning unreal engine 5 to make vr games. I try to make stuff or find stuff online and then I put it in VR and I can look at it up close, or eventually fight it or team up with it. It's pretty hard but it's just nonstop fun.
VR is a new medium. We're in that stage now where people are sort of putting stuff from the old medium in without much consideration of what new concepts or ideas might be possible. Every UI in every game and application is terrible. Everything has to be reinvented, and can be reimagined in incredibly creative and strange ways.
Fairly often now I'll have an experience in real life and think "Someday, I'm going to put this in VR game."
I agree, talent needs to catch up, and new UI concepts are needed (the current VR web browsers feel very awkward). One app that was built very thoughtfully for VR and nailed it imho is Hyper Dash. Making teleporting the preferred form of movement vs. walking was brilliant.
It's in my todo list to learn either UE5 or Unity for VR. After some light research, I've opted for UE5, but am curious how did you decide to go for UE vs Unity?
Early on in my career I noticed that the most fun programming seems to be done by people who are not actually trained as computer scientists: mathematicians, physicists, engineers, chemists, astronomers ...etc
This sort of numerical computing and simulation stuff is incredibly fun and quite rewarding. You work much more often on core logic and much less often on boring fluff. Of course it is all very subjective and it pays shit.
So the answer is: research at a research uni, employed by an applied mechanical engineering lab, but trained as a mathematician.
Agree, I studied mathematics and molecular biology and the most interesting problems are intersections between that and coding (which I learned by myself as a kid).
Have you experienced a caveat in terms of coding quality?
I study mathematics, and I think it is pretty standard for mathematicians to disregard theoretical run times when experimenting and doing "napkin" computations. Invariably this leads to relatively poor code quality. Speaking from experience, I just failed a coding interview because I solved the question like a mathematician would do, i.e. a quick and dirty way. What is your experience with this phenomenon? I know academics often gets railed lacking concepts in data structures etc.
At work, we have a .Net 6 codebase that had some odd design decisions made in the past couple years. Roughly ~115 classes using Unity for dependency injection instead of ASP.NET Core DI, and this horrible Unity-based service locator pattern used all over the place. Since nothing was using constructor injection and instead just grabbed deps from calls to a global static locator willy-nilly, it was very difficult to tell how many dependencies a given class had. The worst classes were injecting 30-40 dependencies, but you couldn't tell this in looking at them.
Anyway - I was tasked with removing Unity and refactoring the service locator usage, since Unity was going to be unsupported soon. Doing this gave me a real sense of agency in our otherwise boring enterprise app; it was one of the rare chances where I could make a significant, wide-scale improvement that would make future development easier for everyone.
out of curiosity, is the code you've had to touch all in one single source control repository? have you needed to refactor stuff across many different independently versioned packages, or is it all monolithic?
(if it were me, i'd be hoping it was one giant monolithic application in one single repo, to make it easier to track & perform this kind of sweeping surgery)
Yup, all one repo fortunately. The majority of changes were in 3 class library projects, each of which is referenced by web portal, API, and nightly jobs projects. I'd imagine it could be quite painful if scattered in various repos!
i've sometimes enjoyed this kind of work in the past, provided there's good automated test coverage / static analysis from compiler & tooling to lean on. After the initial experimentation to decide on the new structure and confirm it is going to work, put on some good music and grind away at it.
Haha yep, that just about describes how it went for me. No way would I do all that without automated testing too - the immediate feedback is crucial for broad changes like this, that way if you do find you've made a wrong judgment in your approach, you find out immediately and correct your course.
One thing specific to .Net DI that made it easier was an extension method provided by our architecture team that does a "warmup" of all dependencies registered in your service collection. In practice all this means is, on app startup, it attempts to instantiate every registered service; if a dependency is missing, you'll get an exception for the service that failed to be created with the dep it failed on. Very helpful for chasing down issues related to missing service registrations!
I work on a childrens book app ([redacted]). It is a total blast. I am kind of a rock star at my kids school (as most schools use the app at this point). School kids beg for different features - their ideas are super fun. My kids are interested on what I work on - watching them pick out books to read is fun. Teaching kids to read - makes it easier to wake up in the morning. [Nice change from soul crushing ad work].
I am designing a microchip for gravitational wave measurements, at the same time trying to understand and model the problems not showing in the simulations of the previously designed chips. We will soon begin with the design of new chips for the next generation Large Hadron Collider. In my opinion, in addition to what I am working on, the freedom in the working environment and colleagues' love for what they are doing is one of the main reasons I am having a lot of fun at work.
This really sounds interesting. Just curious does this chip need super high precision? Do you have to get a hang of the physics behind gravitational wave? Thanks!
Yes, the required precision from the electronics is extremely high. I wasn't that much interested in the physics other than semiconductors before, but with the new job I began learning much more about the physics side of the things and it is very enjoyable. However, you don't need to know that much physics for designing the interface electronics as long as you know what you want to measure in terms of electrical parameters (like capacitance, inductance, charge, etc.) and you know the transfer functions of the system to be measured.
From web dev work only really relevant experience was C++. Mainly got the job based on side projects from outside work. Had always been casually interested in graphics and I spent around 2 years dabbling with side projects outside work (stuff like making a toy rendering engine), reading some graphics books, brushing up on linear algebra.
Transition was definitely tough in the beginning due to steep learning curve
You think you know a decent amount from doing tutorials/side projects but a real production engine is a lot more complicated because its been optimized over the years and as a noob its not obvious why things are designed the way they are.
I felt like web dev you can become pretty competent in like 2-3 years but with graphics it feels like the ceiling is much higher and starts to verge on research as you get more into the topic
A lot of newer rendering techniques you can't easily google and you have to end up reading papers if you want to understand/implement them
Fighter WSO. Adventure, comradery, great group of colleagues with a diverse initial background, and shared recent background. My desk job responsibilities are limited, so I usually go home after debrief and do/learn whatever I want, and work on projects. Liberal leave policy. Just hoping I don't end up with a chronic neck/back injury, or die in a crash.
Strike Eagle. Days vary significantly based on the sched. Generally: Show up, prep as required, brief, put on gear, fly, debrief, go home, or have a drink in the squadron bar. Sometimes it's a desk duty instead, like briefing the crews who fly and doing coord with maintenance, or sitting in the ATC tower and coording emergencies, weather contingencies etc. Sometimes it's a sim (realistic video game with full mockup cockpit) Sometimes its meetings, academics, training etc. You generally have a desk job too that you change out once a year or so, but many of those are being supplemented by civilians who do it full time.
Unfortunately, the computers used for the desk jobs are horrendously broken. Ie, takes ~30 mins to go from log-on to getting email up; everything has a long response time. Opening a PDF to sign or fill out takes 1-3 minutes or so each.
Apparently computers are crappy along the enitre DoD huh, I've heard that form every branch now. Your job definitely sounds interesting, did you have to go through SERE or is it just pilots?
Re-writing a 10-year-old server backend system with matching client-side applications, all of which were abandoned, with no documentation, and which were written in this abhorrent hybrid of C/C++ with more goto's than functions, no const correctness, no unit tests, no testing of any sort, combined with amazingly bad and repetitive spaghetti code everywhere; I am re-writing this in a form that allows for test driven development, code coverage validation, with a matching ci system that performs all the integration testing and deployment automation.
Yeah this is a ton of fun!
It's not every day you get the chance to just re-write something [it rarely is the best idea] but when you do, I relish it.
Working on forecasting solar irradiance at ground level without using physical simulations but only using ML. The idea is to have better and more granular forecasts in order to optimize grid-scale energy storage facilities and peak-power plants to reduce CO2 emissions.
Still entangled in combining the different data sources before start building/training models. So, I'm not having much fun right now, but soon!
"ghostwriting" AI research. Last year optical flow, early this year 3D recognition, last month segmentation, and now speech recognition. Lots of interesting problems and our customers have the practical applications. I maybe worked a bit too much recently because it's so much fun.
Research in finance; job is open ended mandate to find ways to optimise systems, decision processes and alpha signals. Using R mainly, dropping into c++ for some performance stuff. Occasional use of machine learning.
I took apart a 650,000 BTU oven burner this morning for cleaning, and had to clean out the oven exhaust damper that was starting to get build-up. Soon I’ll be at my desk programming again thankfully.
Me. My company is (relatively) small enough that a single engineer can still make impacts, if you're on the right team. I'm on a small team where I know/own most of the engineering tech, and am trusted by my lead on input. It's mostly DE/back-end/front end, however we use a ton of data for some science-based processes and there's always room for optimizing when we have time.
I actually look forward to work/don't dread Sundays at all.
Came here for positive stories. :)
Every time I tried turning things I like into a job turned them into things I hate. ( As soon as the "must" factor is introduced, "fun" evaporates.
That's how I stopped being a paid programmer.
I work on an email marketing product. The product itself is not much different to any other SAAS product but the company pays for me to work in the office which is in another state every quarter so it feels like a free holiday 4x a year. And usually there is a company paid for party/events on in that time.
I'm a DS during the day but recently I started teaching python/ML to a couple of kids (around 8y). It's super nice to see them have fun!
When teaching ML, we mainly used pre-trained models. They learn the concept of data, train/test split, accuracy, and to build programs which use these models.
I am having ton of fun at my current team at Google working on https://pigweed.dev/. I also get to work closely with various hardware teams using these libraries in their products.
Part of having fun at work is figuring out how to make work fun yourself. Sure not every task is fun, but having fun is as much a perspective as it is an aspect of the work itself.
UX design for e-commerce stores worldwide. Working with a cool team, with solid leadership. Learning the most I’ve ever learned I my life. Having a blast
Crickets. Ok bad joke. I used to enjoy a lot making games and XR apps in Android/iOS/Hololens for small companies. Nowaday I work on automation for one of the large ones, which I find easy and interesting.