HNHacker News
TopNewBestAskShowJobs

mattbaker

387 karma · joined November 3, 2010

submissionscomments
mattbaker··on We used Elixir's Observer to hunt down bottlenecks
For us we have our app deployed to $N containers with a load balancer in front (pretty standard stuff I think?)

In Erlang/Elixir you can actually override how instances of the BEAM find each other (instead of the standard EPMD daemon), so we have a module that does some DNS queries, finds the IPs of the other containers and says “hi, here’s your cluster, discovery done.” (Your setup may preclude all that, I know this all depends on how a system’s architected.)

After doing that we were free to use all of Erlang’s cool cluster stuff! In our case we have in-memory caches for a few things, and if a given instance does a lookup because of a cache miss it broadcasts a message to all the other nodes saying “I just looked up $expensive_thing, here’s its value” so they don’t have to do the lookup themselves, they just cache that value, so you end up with a little distributed cache with a few lines of code. In our case, btw, these cache entries are short lived and a little inconsistency does us no harm if one of our instances misses the message, networks are networks, but it’s been great!

Anyway, I think it’s super cool and I’d encourage you to play around if you get the chance.

Also the observer is just amazing. We’ve debugged some pretty weird memory and cpu usage issues with it, I have some internal blog posts, maybe I should see if I could make them public.

mattbaker··on Ask HN: New job at BigCo. Everything has friction
It sounds like it’s pretty early, I’d give it time if you think you can hang on.

I do think it’s worth recognizing that any big company used to be a tiny company, and the road to “big” was probably long and complex.

The growth process from small to mid-sized, and mid-sized to large, comes with a lot of challenges that you may have never witnessed if you’ve been at smaller places. Some of the high-velocity/low-friction approaches to things you might miss (for good reason) become a nightmare at scale. Some of that friction might actually be healthy.

In that regard it’s a lot like jumping into a codebase that’s been around for many years. If it’s your first time some of the code is going to look just awful, but you don’t know why yet.

- maybe pressures at the time meant that code was the right call back then, but it’s not now

- maybe that code is the right call and you don’t fully understand the problem yet because you’re brand new

- or maybe the code really is just bad!

Either way, you can’t really know until you spend some time with it and gain context about the problem domain and the system’s history.

That said, your perspective as a new hire from a place that moved faster is really valuable. I hope you take some notes about these experiences and let them collect for a few months as you gain more context. A good manager and leadership chain should be interested in what you have to say! The more time you spend there the more you’ll be able to flag the areas that seem the best suited for improvement. That kind of stuff can turn into promotion-level accomplishments really fast if you have the right support.

FWIW I had no patience for big companies early in my career and I’m happy I left for smaller ventures, it just wasn’t what I was looking for whether or not the “friction” was justified. These days the pace and process of larger (but not massive) companies suits me better, and I can see some sound reasoning behind some of the things we do that would look like bureaucracy to someone coming from a startup.

Worst case scenario you’ll find out the BigCo life just isn’t for you, at least for now. It’s sweet you’re getting paid to find out :D

mattbaker··on Ask HN: Non-violent video games with great stories?
I loved it too. I actually don’t agree there’s a lack of story, but it’s certainly subtle. More “poem” than “novel” in a way.
mattbaker··on Tell HN: Transfer your Google domain to other registrar before it locks you out
Are there any alternatives that people are fond of? I’ve been on Google domains so long I’m not sure what the playing field looks like these days.
mattbaker··on Dragonflydb – A modern replacement for Redis and Memcached
Yeah, I’d like to see a bit more justification on what makes it “modern.” The use of io_uring maybe?
mattbaker··on I disabled WiFi on the new Samsung fridge
The appliances came with the apartment/house the author is in, they didn’t choose to buy them.
mattbaker··on Erlang/OTP 25.0 Release
Yep: https://jobs.jobvite.com/newrelic/job/oTbyjfwF
mattbaker··on Erlang/OTP 25.0 Release
Yep, it’s by no means the most common stack but it does power a few critical services. We’re actually hiring for an elixir role right now (non-senior/mid-career, prior elixir not required).
mattbaker··on Erlang/OTP 25.0 Release
I laughed and cried at that last sentence. 10/10
mattbaker··on Erlang/OTP 25.0 Release
Well if you try out the GraphQL API its API gateway is Elixir! The fields themselves provide data from a multitude of services downstream, but the gateway unifies it and sits in front.

I hope you like product :)

mattbaker··on Erlang/OTP 25.0 Release
My thinking is Erlang’s been powering massive systems since the early 90s, I’m feeling pretty good about its longevity.

Many of Elixir’s strengths are Erlang’s strengths.

I wouldn’t hesitate to learn some Elixir if it’s interesting to you. It’s not as pervasive as other languages but it’s not niche either.

Full disclosure, it’s been such a wild success for my team at New Relic the last 5 years that I’m very biased :)

mattbaker··on Erlang/OTP 25.0 Release
Good news for anyone deploying to Graviton too
mattbaker··on Study suggests mechanism through which psychedelics may alleviate depression
Oregon will be formalizing their program to provide therapeutic access to mushrooms in controlled settings soon.

I have mixed feelings and some potential fears about the execution, but it’s still going to be absolutely fascinating to watch and I’ve got my fingers crossed it could become a really positive treatment option for residents here. I bet we’ll see some articles about it on HN in the years to come!

mattbaker··on Ask HN: Beating depression with or without anti-depressants?
I’m not qualified to provide medical advice, but I have a lot of personal experience to share which may or may not be helpful. Some things I’ve learned through the years, speaking only for myself (early onset bipolar-ii, many different doctors and meds over the years):

- Not all doctors are created equal. I’m very glad I got some second opinions on medication regimens. If you have access to that level of care, try talking to more than one doctor about your options.

- It was tricky but necessary for me to balance a medical professional’s superior knowledge in certain areas against my own intuition and internal awareness. I have (correctly) chosen to decline proposed treatments that I felt were inappropriate based on the experiences loved ones had had on similar regimens. I don’t have an easy answer on this one, sometimes the doctor may know best. For me I had to feel the medical professional and myself were working as a team, and they should treat me as a team mate. If this wasn’t the case I had the (immense) privilege of being able to find a new doctor even if it took a while.

- My journey to find the right treatment was essentially trial and error and that seems common among my friends as well. Some had crappy side effects. None of them were dangerous for me or permanent. I have tried many different medications and none of the experiences I had were scary or risky, even if some side effects were really unpleasant.

- I found the right medication with a doctor I trusted. It has changed my life. I made the right choice for myself by pursuing treatment.

- It’s possible I could have toughed it out, but with medication all the energy I spent staying alive could be spent thriving and that has made all the difference. I am glad I made the choice to use meds to manage my mental health.

- I have found a lot of healing with the use of psychedelics, which some have mentioned. In Oregon they’ll be approving them for therapeutic use in specific settings soon and I’m hopeful this will be another option that could help some people. The impact can be unpredictable which is why I like the idea of someone providing guidance instead of individuals taking it alone. So while I see a lot of potential, I also think it can be risky to try solo without a strong support system.

This is hard work you’re doing and good for you for exploring and trying to find the choice that is right for you in this moment. I hope you find some relief <3

mattbaker··on New type of ultraviolet light makes indoor air as safe as outdoors
From the article:

> “This microbe was chosen because it is slightly less sensitive to far-UVC light than coronaviruses, providing the researchers with an appropriately conservative model”

This makes me think it would be effective against coronaviruses as well.

mattbaker··on The origin story of our new ortholinear keyboard
It doesn’t get mentioned much but the kinesis “freestyle pro” was the one that finally fit my needs and it’s been a joy to use. Definitely worth consideration!
mattbaker··on Akamai to Acquire Linode
I’m really struggling to see how “the company’s response to security breaches was inappropriate” logically leads to “staff might be stealing Bitcoin.”

It’s a baseless and unfair attack and I think you should consider deleting your original comment.

mattbaker··on Ask HN: Should I publish my research code?
In undergrad I was so grateful whenever a CS paper came with code. It helped me learn and comprehend so much better and I always wanted to thank the person who did it (sometimes I even did if their email was there :)).

You might be doing a young student a solid :D And don’t worry about cleaning it up!

If you use GitHub you could even disable Issues and have a note saying you don’t accept pull requests (in case you’re worried about support burden).

mattbaker··on Show HN: Pimp My Readme
Yeahhhh but the context doesn’t negate the fact that the word is a reference to exploitation. I’m with the parent comment on this one. If it was 2005 I probably wouldn’t have blinked but ya know, the world moves on.

There are just so many names to pick from! I find the choice very confusing. Too cringe-y for me to consider sharing or using personally, but I’m sure some will and I hope they enjoy it.

mattbaker··on Things Unlearned
Your writing was very good and the time you spent on it was clear to me, this was exceptional.
mattbaker··on Things Unlearned
Functional programming can mean a lot of things to a lot of different people so declaring something “fake functional” is difficult.

If we get down to brass tacks, functional programming is just solving problems by composing functions, if we want to talk “purely functional” then we’re making more promises regarding side effects and immutability.

So I’d hesitate to call anything “fake functional” myself, I suspect what we call functional languages are often just “languages that do a good job letting us apply functional programming concepts”, and languages that don’t do that well will certainly not feel as good to use as ones that do (if you like the ideas in functional programming that is).

So in a way I agree. I personally can solve problems in Elixir using functional ideas more easily than Ruby. At the same time I could absolutely write a mutable, side effect ridden mess in Elixir or some pretty respectable functional looking code in Ruby.

I think it’s more about what the tool encourages and makes easy for you to do than a binary functional/not-functional designation.

mattbaker··on Elixir: Practical Concurrency Cookbook
Makes sense. For what it’s worth we’ve been really happy with traces, no issues there, and there are definitely profiling tools. Plus you can point Erlang’s Observer tool at a production BEAM node, it’s wildly useful!
mattbaker··on Elixir: Practical Concurrency Cookbook
I’m always curious to learn about things that make people cautious to run the BEAM in production. What makes it scary for you?
mattbaker··on Good and Bad Elixir
Yeah, I disagreed with a decent amount, but I tried to read it as “here are the patterns and practices I feel passionate about” and that made it an interesting read for me.

The sort of declarative good/bad language worries me a bit because people new to the language may take it as gospel, but overall I’m glad to see people putting their thoughts out there with explanations and examples :)

mattbaker··on Good and Bad Elixir
I think a lot of this is subjective and context dependent so the definitive “this is good” and “this is bad” language was a bit of a turnoff.

BUT, I did like seeing someone’s point of view with thoughtful explanations and examples, kind of like what you get out of a good discussion at an elixir meetup or something :D I enjoyed reading it.

mattbaker··on Ask HN: Post Burnout Ideas
Jobs at larger, more stable corporations can still take a lot out of you! Even if it pales in comparison to the insanity of startup life.

For myself: the drive, and the creativity, only come back if I stop working for an extended period of time (weeks). I need a lot of idle time and some boredom before I feel creative again, let alone want to touch a keyboard, but if I wait long enough it always happens.

I promise you the creativity and desire is still there. It could be more that the current job (or something else) is suppressing it, and less that you haven’t recovered something you lost.

mattbaker··on Ask HN: Are you satisfied with Elixir or do you regret choosing Elixir?
It’s honestly been one of the smartest choices we’ve made. We’ve been running it for four or five years now. It powers high throughput systems and those systems are classified as critical (if they go down, most of the product goes down.) Not a single regret.

New hires new to Elixir have spun up on it very quickly, in my opinion what a team needs is one or two people experienced in Elixir to give some initial guidance but you don’t need a staff of experienced Elixir engineers to do great work. I have not found it a hard language to teach.

Personally I’ve found the library ecosystem very strong, and writing our own libraries has not been hard. It’s important to note that interop with Erlang is quite good, so you have access to decades of library development from the Erlang ecosystem in addition to libraries written in Elixir.

The basic elements you’re given out of the box for handling fault tolerance and concurrency are graceful and intuitive. The performance has also deeply impressed us.

On a personal level, it’s also the most enjoyable language I’ve worked in and I’ve had very good experiences with the community. I find the tooling very good, including the VSCode extension (I have contributed a few features) but the default dialyzer setting definitely does hog the CPU on first build. I disabled it since we don’t get much out of it.

I’ve built and run software in production in a lot of different languages over the last 15 years. Nothing has compared to Elixir, not even close.

YMMV, I’m not here to refute the experiences of others, I’m just here to say for us it’s been an incredible experience. Absolute joy to use.

mattbaker··on “Under-the-hood of GraphQL”-look at the execute req part of the query lifecycle
Extremely cool post, but I think the title is a little misleading. The execution of a query is dependent on the framework, this article is specifically about the GraphQL reference implementation in JS.
mattbaker··on Ask HN: Old CS lecturer looking for advice from current and recent students
I taught for around four years at a coding school that gave me free reign to try whatever crazy experiments I wanted. With the compressed timeline, I also got the chance to try out different things with a new batch of students every three weeks! It was a tight feedback loop with weekly feedback forms from the students.

As an example, here’s one experiment that proved really useful, a ruby object graph visualizer to explain objects and references: https://github.com/mattbaker/ruby-heap-viz

Your experience teaching is far greater than mine, but I think I might actually have a lot to share in relation to the questions you’re asking, and I love talking with educators.

If you want to chat sometime drop me a line at mbaker.pdx at gmail.

mattbaker··on Dev Bootcamp is shutting down
As a former employee I have to say that Kaplan did a very fine job keeping the company afloat when it would have otherwise collapsed years earlier. I know the story of an evil corporate takeover is a tempting one, but that's not what happened here. Frankly, I was astounded at just how massive a bet they were willing to make on us. More than once they provided an influx of capital while Dev Bootcamp's leadership attempted to find a sustainable business model. In the nearly four years I was there they exerted shockingly little influence over DBC, and largely left it up to us to figure out how to make this work.

DBC failed because DBC failed, not because Kaplan made us fail, and I think it's important to own that. Without their deep pockets our quirky, beautiful, compassionate little place of learning would have fallen apart a long time ago. As far as I'm concerned, Kaplan bankrolled an amazing thing far past its expiration date, and gosh am I glad they did, because I had a blast.

← PreviousPage 2 of 3Next →