1. 4
    • Erlang: Message-passing everywhere, thanks to the actor model. Feels like creating new biological systems, not just programming. In a good way.

    • Prolog: Encode rules. Encode a metainterpreter to redefine search. Suddenly, you have a very flexible system. Not just the cliche about Prolog. The first Erlang implementations were built this way.

    • Haskell: Laziness and point free style enable extreme composition, and facilitate calculating programs. Read about Squiggol to understand the deep implications this may have. The Joy language is also worth mentioning here.

    • Idris: Dependent types let you encode rich constraints that can be enforced at compile time. Liquid Haskell uses refinement types, which are a less expressive but more tractable alternative. And you still have the whole Haskell ecosystem at your disposal.

    • Mozart/Oz: Many paradigms in the same language. Look up CTM, a great sequel to SICP.

    • Julia: AOT compilation of specialized functions can lead to wicked speedups. Multiple dispatch plus a clever dynamic type system may be all you need for number crunching.

    • Rust: Nice type systems are also good for non-GC languages, and can enforce very practical guarantees (memory safety) for systems programming.

    1. 10

      I use Microsoft Sculpt Ergonomic keyboard.

      I was using the Mac keyboard beforehand, but my left wrist + ligaments on top of the hand started hurting after prolonged usage, so I knew I had to switch to an ergonomic keyboard. One of the best purchases of my life. Tbh, I rly dislike the fact that the keyboard is connected thru USB instead of bluetooth, but I assume that’s some business decision, in order to force pairing the keyboard with the mouse (cuz you can’t buy the keyboard standalone… it comes with the mouse).

      1. 2

        Thanks for the recommendation! Btw, seems like you can indeed buy a keyboard alone: https://www.amazon.de/Ergonomische-Tastatur-Microsoft-Sculpt-QWERTZ-Layout/dp/B00EY8PXZG/

        1. 2

          It’s a shame they don’t make a slightly better quality one, as the ergonomics is just perfect. Plus, it doesn’t differ so much from a regular QWERTY keyboard.

          However, some keys get stuck, latency is a bit too high for my taste and the rubber palm rest gets damaged too quickly.

          1. 2

            I use the old-style Microsoft Ergonomic Pro keyboards - produced when they were switching from PS/2 connectors to USB, so they come with a split connector with both. Right now I troll eBay for ones that look like they’re in good shape (haven’t found new in box for sale) because there hasn’t been a good replacement made since the early 2000s. The Logitech ergonomic keyboards from early 2000s were good, but it seems Logitech got out of producing real ergo keyboards.

            1. 2

              You used to be able to buy one without a mouse, and it still used the dongle.

              It’s a mixed bag: I lost the dongle to one keyboard, which sucked. On the other hand, my experience (which I’ve heard echoed from others) is that wireless dongles connect much more reliably than Bluetooth.

              1. 2

                I use the Microsoft Sculpt Ergonomic keyboard too. I love it. It feels great to type on even after long periods. It’s not huge, it’s light and easy to move around my desk. It’s not mechanical unfortunately. I also wish it was Bluetooth. But honestly, the worst part for me is whatever material they used for the palm rest wears away relatively quickly. I’m already on my 2nd keyboard and thinking about buying another one. I might buy a bunch because Microsoft will stop making them at some point and I don’t want to pay a fortune in the post-production market.

                1. 4

                  But honestly, the worst part for me is whatever material they used for the palm rest wears away relatively quickly

                  I’ve had to take apart my 1st to try and repair it, but failed. I noticed though while taking it apart, it is VERY easy to replace this wrist rest material with something of your own. It would be a easy modification to use another material.

                  I think a big reason behind the material they chose is it’s easy to clean while still being soft.

                  1. 2

                    Can you explain? I didn’t think the wrist rest would be that easy to replace, mostly because of the shape and how it’s attached to the rest of the plastic. What material do you recommend and how would you get everything fit in nicely?

                    1. 3

                      You wouldn’t replace the rest but the material. The material just slides right off :)

                      1. 2

                        I get it now. Very interesting. I don’t think it will be easy but peeling off just the stop surface is more promising than that what I was originally picturing. Thanks.

                2. 2

                  I also use this keyboard on a Mac and I absolutely love it.

                1. 110

                  I tell anyone asking me for career advice the same two things.

                  The first: the deeper in the world’s dependency tree you are, the less frequently things will churn, and the longer your skills will last. TCP doesn’t change very often. Theoretical skills may be applicable for your entire career. Human skills are more durable than any technical skill. Kernels don’t change very often (but more than TCP). Databases don’t change very often (but more than kernels). There is a spectrum of skill durability, and you will burn out faster if you find that all of your skills become worthless after a very short time. Dependency forces things not to change their interface, which causes the work to shift toward performance and reliability among other things that some people find far more rewarding over time.

                  The second: the more people who do what you do, the worse you will be treated, the more BS you will have to put up with, the worse your pay will be, the faster you will be fired, the harder it will be to find a job that values you, etc… etc… Supply and demand applies to our labor market, and if you want to be happier, you should exploit this dynamic as heavily as possible. Avoid competition like the plague. But don’t avoid funding. How do you avoid competition without going off into the wilderness where there is no money to be made? Hype drives funding, but it also drives a lot of competition. However, using rule #1 above, the hyped things depend on other things. Many of these dependencies are viewed as “too hard” for one reason or another. That’s the best place to be. Go where other people are afraid, but nevertheless have a lot of money depending on.

                  All hyped things rely on things that for one reason or another are not commonly understood, and tend not to change quickly. That’s a good place to find work involving durable skills that tend to have lower competition. Go where the dependency is high but the competition is low, and you have a better chance of being happy than people who go where the competition is high or the dependency is low. Bonus points if it’s actually “hard” because then you won’t get bored as quickly.

                  There are areas of front-end that are high-dependency, durable, slow-changing, and low-competition. That’s where engineers are likely to be happiest. But these two principles apply to every field or zooming out to any business generally. I’m pretty happy working on new distributed systems and database storage engines for the time being. But I’m always looking for the things that are viewed as hard while also receiving significant investment, as these are the things that will ultimately give me more opportunities to live life on my own terms.

                  1. 10

                    Go where other people are afraid, but nevertheless have a lot of money depending on.

                    There is an old Yorkshire saying: “where’s there’s muck, there’s brass”.

                    1. 7

                      This is so true, I’ve gone to my car to fetch my laptop just to upvote and comment. It’s an exceptionally important piece of advice I wish I had understood as early as possible in life, but I didn’t.

                      CS (pure) and Math degrees are so good because they teach you really basic theories that are mostly timeless. Whenever I’ve gravitated towards more trendy or applied skills, either in coursework or in jobs, there’s always been a really poor and transient ROI.

                      […] using rule #1 above, the hyped things depend on other things. Many of these dependencies are viewed as “too hard” for one reason or another. That’s the best place to be.

                      What are some examples of these dependencies right now, or in the near future?

                      1. 6

                        Thank you very much for this post. Great distillation of essential career advice, especially the part about the durability of human skills. So many developers would derive far more value from a single public speaking or improv class than from learning yet another new programming language.

                        1. 3

                          Oh man, the number of times I’ve echoed this exact same message to others almost verbatim in the first two paragraphs. Thanks for posting this. Thinking about my career in this way a few years ago was probably the most valuable change I made.

                          1. 4

                            Thank you for the kind words :)

                            Large-scale ML, blockchain, IoT, serverless, k8s, etc… are all areas recently flooded by newly minted experts in the topical skills, but like the Australian poop diver who claims to have never worked a day in his life, there are great opportunities for high-respect jobs in the dirty internals of the systems :) Particularly with this set of hyped tech, there are very few people who seem to specialize in getting bugs to jump out in distributed systems. Everybody is still writing almost all of them in a way that assumes the happy path. But there are techniques for building all of these systems in ways that encourage the race conditions to jump out. The few people who take pride in building correct distributed systems will have their plates full for a while!

                            Another reason why this kind of bug hunting and prevention is not all that popular may be that the sorta-similar yet way-cooler-seeming field of systems security tends to absorb a lot of the people who may have otherwise been predisposed to this type of work.

                          2. 1

                            love this comment. like the other commenter, do you have any examples of “hard, but trendy” in frontend or elsewhere?

                            1. 7

                              Spitballing, I’m going to google “hyped programming field” and see what comes up, then I’ll try to break it into areas for investigation. Ok, my results on the first page seemed to be about AI, python, golang. I mentioned high-scale ML depending on distributed systems skills and correctness skills above, so I’ll think about the others. Python feels harder for me to answer so let’s dig into that.

                              Python is immensely popular and I think that becoming an expert in alleviating any friction point that people often hit will be lucrative. But what about things that SOUND really boring? When I think about things that suck about Python, the most dreadful thing that comes to my mind is migrating large applications from Python 2 to Python 3. Python 2 stuff is still everywhere, and it’s increasingly hazardous over time because its support has run out. But people don’t want to touch things that are still ticking along. Legacy systems, like geriatric medical care, becomes more important every day.

                              But despite being extremely important and an excellent place to apply interesting mechanical (yet supervised) translation and correctness analysis during modernization, so many people have been burned by consent issues at work where their managers forced them to work on legacy despite them not wanting to work on them. So much of the overall programming population has been burned by non-consensual legacy engineering that almost everyone wants to stay as far away as possible. The only question is how to find the companies who realize that modernizing their legacy systems is actually something you want to pay a specialist to do instead of forcing the task on junior devs with no negotiating power. Banks are well-known for paying consultants for this kind of work, but to be honest I’m not sure.

                              Maybe Python 2 modernization isn’t exactly a golden ticket due to the difficulty in finding companies who are willing to hire specialists to perform this task. Maybe it’s too easy. But may it’s not. I’m not sure. In any case, this maybe demonstrates the general search technique, and can be used to illuminate further areas for research. If general Python 2 modernization is “too easy” then you can slap on more filters. Python 2 modernization for automotive codebases. That sounds much more correctness-critical and likely to pay a specialist to accomplish.

                              Anyway, the general pattern is: what feels repulsive and hard? Maybe that sense of repulsion creates a dynamic where the few people who do the thing are extremely well treated due to their scarcity. If that scarcity of talent aligns with an extremely popular overall field, there’s a good chance that there are folks who require a specialist to address this niche.

                              1. 6

                                Anyway, the general pattern is: what feels repulsive and hard? Maybe that sense of repulsion creates a dynamic where the few people who do the thing are extremely well treated due to their scarcity. If that scarcity of talent aligns with an extremely popular overall field, there’s a good chance that there are folks who require a specialist to address this niche.

                                Here’s an example of scarcity working out well for an expert. Another company in my industry was converting to a different accounting system. These projects are incredibly complex and can last years. Part of the process required recreating hundreds of templates for the new system. One contractor handled the template conversion; she retired at a young age after the project was complete.

                                1. 3

                                  non-consensual legacy engineering

                                  Have you written about this anywhere? I’d be curious to hear more about it. It immediately struck a chord with me, and probably does with most software engineers.

                            1. 2

                              I’ve posted this as Lobsters has a sub-community that has shown a lot of interest in formal methods.

                              Formal methods have been historically quite unfriendly, as @hwayne has discussed in many of his insightful comments and blogposts.

                              The authors of this book, Nielson & Nielson, wrote the standard textbook on static analysis. I find it very interesting that they are writing a more introductory volume where they trade some generality for simplicity. They use program graphs as the basic data structure to build different formal methods on, and the resulting textbook is quite approachable!

                              There’s also a companion website with runnable formal methods: http://www.formalmethods.dk/

                              I did cover some alternative textbooks in a comment I posted a year ago: https://lobste.rs/s/3hj7gs/using_z_specification_refinement_proof#c_5dayun

                              There is also a second volume by the same authors, freely available on arXiv: https://arxiv.org/pdf/2012.10086.pdf

                              1. 1

                                Tangential question, but do you think that formal methods will get more traction in the 2020s? Aside from building more robust software, I think semantics can help AI approaches such as program synthesis.

                                I did a whole MSc on the topic back a decade ago, and we were using a mix of old references like the one posted and new more polished material. I remember quite fondly using these books, on a language inspired by Z: http://www.imm.dtu.dk/~aeha/RAISEbooks.html

                                The literature is much better now. In particular there is some great broad introductory material:

                                Plus some classics, most available long ago already:

                                And some constructive foundations:

                                1. 3

                                  I have been summoned

                                  Almost exactly a year ago I wrote a piece called Why Don’t People Use Formal Methods which aimed to cover a lot of the specific difficulties in the space. To summarize:

                                  1. Proving code is correct is pull-your-hair-out hard
                                  2. Proving designs correct is easier, but has social barriers.

                                  Now (1) is getting easier, as the SMT revolution comes into full force, but it’s probably going to be a specialist domain for the near future. I’ve talked with people who do it professionally, and the challenges there are all essential. Proving code correct is just a fundamentally difficult problem. We’re likely to see more advances in partial verification, though, with things like Rust showcasing what we can push into the language.

                                  Re (2), the biggest challenges there are accidental: formal specification has bad UX and bad PR. I’ve been working really hard on the second one, making things like TLA+ and Alloy easier to learn by providing better education materials and more interesting to learn by providing lots of good examples. But the UX problem is still a pretty big barrier. Fortunately, it’s something that can change, and probably will as more and more people start to learn these things.

                                  1. 1

                                    I totally agree SMT solvers, when blended into languages, will make things more usable.

                                    I really liked Spec# as a student a decade ago. I think their approach of applying theorem proving on contracts yields a very natural user interface. I suspect that when applied on a language with very clean semantics, such as any purely functional one, it’d be even better.

                                    Do you have any other favorite tools aside from TLA+ or Alloy? What is the domain you are mostly working on?

                                1. 7

                                  I think this will be my first year of using exclusively Windows after like 15 years. All started when I got a small Debian netbook from my father. Used Windows pretty much exclusively for gaming after that. Now I run it both on my laptop and on my PC. Well I do all my work through Msys2, I have bash and basic Linux utilities and a package manager which is basically all I ever needed.

                                  I got burnt out from fixing things. I got burned out from being tempted to break them. Took me a while to realize I actively don’t want to know how to fix anything pacman related, or WM related, or anything like that.

                                  Linux is a bad fit for me because I’m a perfectionist. Even when I’d fix something I had this unshakeable feeling that I’ve ‘muddied’ my system, that it still might tacitly be in an invalid state. Yet I never put in enough energy to become truly proficient with stuff, only fragments.

                                  Here’s a snarky twitter thread in this vein: https://twitter.com/garybernhardt/status/1078389370741186560

                                  1. 7

                                    Actually I feel the other way round about Linux vs other systems. I can only achieve simple and fully reproducible setups using Linux.

                                    The key is cherrypicking appropriate hardware and simple standard components. In my case, I find all-Intel machines plus a simple userland (StumpWM, Emacs, Firefox and XTerm) are incredibly nice to use. For this I employ both NixOS and Archlinux.

                                    1. 7

                                      Yup. Brains are different. For you, the shortcomings that are unclimbable mountains for some are barely noticeable.

                                      I do think that with things like WSL and Powershell, Windows is beginning to approach the same level of customizability, but its interfaces for accomplishing what you want are probably not to your liking.

                                      That’s the whole point, it’s about finding the interface that feels good to you while appreciating that it isn’t the same way for everyone.

                                      1. 3

                                        Thanks, I am interested in learning what makes Windows superior to Linux for your usecase aside from hardware compatibility.

                                        In my case, I love Linux due to minimal distros (few moving parts) and declarative configurations plus rollbacks (Nix and dotfiles).

                                        1. 2

                                          I had switched from Linux to macOS in 2007, because it was so much more polished (it still is) and had so much better applications (still does). But NixOS is what brought me back to the Linux on the desktop fold. Being able to define your machines and development environments declaratively is an enormous win. I can check out a project repository on a new machine and I have exactly the same CUDA, PyTorch, etc. versions.

                                          (Yes I know that Nix works on Darwin and I use it on my MacBook, but NixOS is more encompassing + Linux is better supported by Nix.)

                                      2. 1

                                        I hate simplicity and the best way to achieve reproducibility is to not ever have to reproduce anything:)

                                      3. 5

                                        Msys2 is a good solution, WSL is excellent in my experience.

                                        And it’s only getting better, there’s a HUGE amount of effort being invested in making it a first class development environment from Ubuntu and Microsoft. I’m psyched to see what evolves in that space.

                                        And I totally agree, I have both installed on my laptop and very much enjoy having Linux around to play with the amazing toys the mad scientists come up with and do crazy experiments on, but when I Need to Get Work Done (and this is gonna make the diehard *NIX folks bristle, sorry folks :) I boot into Windows and stop worrying about it.

                                        1. 1

                                          WSL1 has extremely poor IO performance, to the point where it is almost unusable in certain situations. I’ve since switched to using an ‘always-on’ Linux VM using hyper-v that I just SSH into. Much better performance and support for all Linux programs that way. I’m looking forward to WSL2 though, which is just actual Linux running in a VM.

                                          1. 1

                                            Yes I’m very much looking forward to WSL2 as well. I now wish I’d bought the Pro version so I could run the preview, but unfortunately their marketing doesn’t mention anything about Pro having expanded Hyper-V container hosting capabilities.

                                        2. 4

                                          I got burnt out from fixing things. I got burned out from being tempted to break them. Took me a while to realize I actively don’t want to know how to fix anything pacman related, or WM related, or anything like that.

                                          Don’t break things then? Linux systems don’t randomly break like Windows systems do. They just work, reliably, the same way, until you change them. People that complain about their Linux systems breaking inevitably are doing stuff like installing dozens of AUR packages. Installing loads of crappy third party software is going to have negative effects on any operating system.

                                          Here’s a snarky twitter thread in this vein: https://twitter.com/garybernhardt/status/1078389370741186560

                                          This is the problem with Twitter. We don’t see any of the replies to his tweets, we just see him unfairly and inaccurately paraphrasing what people say and arguing against that. And it’s impossible to argue against his claims anyway.

                                          His original tweet is about the Linux desktop, and as soon as people point out that the Linux experience on desktop is completely fine today, he pivots to talking about laptops, which aren’t desktops. Someone points out that other platforms also don’t work reliably (no shit! none of them work reliably) and says “Buy a new Mac. Open the lid. The trackpad works. The sound works. The WiFi works. Emoji works. 3D acceleration works. Close the lid. It sleeps. Open the lid again. It wakes from sleep.” Like mate, you can get Linux laptops where all those things work too…

                                          Every time anyone responds to his point, he shifts the goalposts.

                                          1. 6

                                            Linux systems don’t randomly break like Windows systems do.

                                            In my experience this is very incorrect. I’ve been using Windows 10 for the last couple years with no real issues. Prior to that I was using Ubuntu and had random things break almost once a week. You could say it was my fault for using third party package sources to install current versions of software that was unavailable in the official sources despite having been released for six months, but things like that simply don’t happen on Windows in my experience.

                                            1. 1

                                              In my experience Windows 10 breaks constantly in weird ways and Linux is very reliable. And that’s certainly not my fault!

                                              Random things literally cannot break ‘once a week’ on Linux unless you’re changing things once a week. You complain about needing to use third party packages then also complain about stability. Like, the whole point of the official repositories not being the most recent version of packages is stability!

                                            2. 3

                                              Like mate, you can get Linux laptops where all those things work too…

                                              I think that’s the thing; he’s comparing Apples to oranges^Wrandom hardware and throwing Linux on it. I am constantly disappointed by stuff not working in Debian on some Thinkpads (my current work machine has a weird issue with the display driver on multi monitor and my home laptop’s microphone doesn’t seem to work at all), but then those weren’t actually designed to run Linux. Try running MacOS on a random janky piece of shit PC hardware “designed for Windows” and see how well you fare. Then complain on Twitter and watch the number of people claiming their Hackintosh works just fine, thankyouverymuch.

                                              By the way, what “designed for Linux” laptops can you recommend? I’m slowly starting to think about replacing my x230 and I don’t intend on buying another Lenovo. Ever.

                                              1. 2

                                                Like mate, you can get Linux laptops where all those things work too…

                                                I bought a HP laptop this year and stripped off Windows and put on OpenSUSE. It’s a niche distro, and neraly everything just worked (except codecs, but just add Packman). I haven’t had to configure much since set up either. I know people have gotten themselves into trouble with pacman, and I’ve gotten myself in a world of hurt in both apt and yum before, but zypper seems to do the right thing most of the time. I spent many college nights tinkering to get things to work, but things are 1000x better today.

                                                1. 2

                                                  Don’t break things then?

                                                  They break by themselves. Constantly. Even if accomplishing basic things didn’t require a level of involvement from the user much higher than that in Windows, even Ubuntu tended to break just from basic updating.

                                                  Linux systems don’t randomly break like Windows systems do.

                                                  I genuinely can’t recall Windows ever breaking, except once when I had a hardware issue that was causing BSODs.

                                                  People that complain about their Linux systems breaking inevitably are doing stuff like installing dozens of AUR packages.

                                                  Oh man you use Arch and actually have no trouble stating that it doesn’t break literally randomly?? This is a meme even in hardcore Linux enthusiast communities because of how often that happens.

                                                  1. 4

                                                    They break by themselves. Constantly.

                                                    They literally do not. This is not up for debate. Software does not spontaneously break. You change things and it breaks. Its developers change things and it breaks. But it does not spontaneously break.

                                                    Even if accomplishing basic things didn’t require a level of involvement from the user much higher than that in Windows

                                                    Like what? Beyond installing it in the first place. That computers almost all still come with Windows is a perfect example of the failure of anti-monopoly laws, not a point against Linux.

                                                    I genuinely can’t recall Windows ever breaking, except once when I had a hardware issue that was causing BSODs.

                                                    Windows is notoriously unreliable. I can’t understand how someone could even type the words ‘I genuinely can’t recall Windows ever breaking’. It’s an operating system that’s so unreliable that people have to regularly reinstall it to avoid it becoming slowed down by its own decay!

                                                    Oh man you use Arch and actually have no trouble stating that it doesn’t break literally randomly?? This is a meme even in hardcore Linux enthusiast communities because of how often that happens.

                                                    It’s a meme specifically because of the ease with which you can install third party packages. If you don’t do that then it doesn’t break basically ever unless you completely ignore the announcements every year or so that you need do so something beyond updating all your packages for some reason.

                                                    If Arch did break more than other distros then that would just confirm that the issue is the software breaking and not the operating system, because the only difference between Arch and other distros is that it’s rolling release and doesn’t patch its packages.

                                                    1. 4

                                                      They literally do not. This is not up for debate. Software does not spontaneously break. You change things and it breaks. Its developers change things and it breaks. But it does not spontaneously break.

                                                      Yeah, it can, assuming it’s stateful and you actually use it. I’ve had stock installs of Debian run out of disk space because of too many log files.

                                                2. 2

                                                  I’m sometimes tempted to go Windows only but I always have to dual boot to Windows on a number of machines and the consistent micro lags (30 - 150 ms) on brand new top-of-the-line hardware drives me crazy :-/

                                                1. 7

                                                  This was my home office for most of last year.

                                                  However, I have now decided to return to a life of living out of a suitcase and slowly travelling the world, writing Haskell on a Macintosh Book Air. I’m looking forward to when Fruit Company releases the new machines with the old keyboards, as I spilled a glass of exquisite Georgian red wine in my current machine and typing has become somewhat less ergonomic.

                                                  1. 1

                                                    Living the dream. I’d love to hear more about how you do this, since doing the same thing someday is on my bucket list.

                                                    1. 9

                                                      I started working remotely six years ago, and was working partly remotely for about 18 months prior. I always knew I wanted to work from home, and initially it was something I requested as part of the salary negotiation process. Us programmers have plenty of leverage in that regard.

                                                      All through my freelance/consulting years, I had to convince companies to let me work from home, and would pitch it as them getting more documentation — because communication should be mostly asynchronous, in written form — and also buying my services at a lower rate, since I don’t have to pay the extortionate costs of living in, e.g. London. Everyone wins.

                                                      I could have happily continued living in Poland by the beach, but visa issues with my partner (Russian) meant we would potentially be separated for a couple of months. Rather than endure the bitter Winter by the Baltic Sea alone, in February and March of 2018 we went and lived in Thailand. I then realised there’s no good reason for us to not continue floating around different countries that are more affordable and have a better climate. We went sailing in Greece in May, lived in Belgrade in June, Warsaw in July (not very original I guess; I’m half Polish), Ukraine for three months, and then a combination of London and Russia towards the holiday end of the year. At the end of 2018 I quit working for other people, and I have been focusing on my own projects since.

                                                      Travel plans for this year so far include Russia, Thailand, Sri Lanka, Armenia (or perhaps Georgia), and Ukraine. My partner is a junior web developer, and she is now looking for her first remote job. All of my employees also work from wherever they want. If you’re curious about writing Haskell specifically: I don’t think anyone was going to hire me to do this. I had to start my own businesses, get funding, and build my own team of Haskell people.

                                                      Happy to answer most other questions you might have.

                                                      1. 1

                                                        Sounds amazing, your own Haskell business.

                                                        Care to elaborate more on what application domain you use Haskell for, if possible?

                                                        1. 5

                                                          All three businesses are web applications. One is in sales lead generation, one is in price comparison, and my primary focus is a marketplace product for the reinsurance industry. I’m using similar tech in all three: Yesod, PostgreSQL, Redis, NixOS, AWS.

                                                          1. 2

                                                            NixOS fits so well with Haskell ethos.

                                                            Very intereting to hear all this, thanks.