Anyone who has a restless dog in the evenings can see DMN create anxiety.
Like many dogs, my dog gets bored and looks for something to bark at. He scans out the window like I scan social media. He’s got extra energy that seems to need to go somewhere, and that somewhere seems to be looking out the window scanning for threats, barking, sounding meaner than he actually is.
It’s like he manufactures anxiety out of nothing else to do.
I'm head of Software at Quatt, a quickly growing scaleup building heatpumps to help fix climate change. Heating and cooling is 50% of all energy used in the EU. Heat pumps save 10 times more CO2 for each Euro spent on them compared to electric cars. We're building the most accessible and smartest heatpumps on the market. Our first product is live, the next ones announced, we have thousands of customers, tons of data, and I really like the impact we're having. We also raised €25 million for further expansion. I’m currently looking for a few roles for my department, as we believe having the best software will allow us to have the best product. Our backend and frontend is Typescript.
I mostly wanted to highlight the Team Lead for Team Boss, which builds all tools needed to run our multi-million euro business - and we are as software driven as we can be. Looking for someone who can drive that team to great heights.
* Team Lead Team Boss (Engineering manager, Typescript)
* Full stack developer (Typescript)
Now is a great time to join, as the software team is still small but growing quickly. These and other vacancies are on our careers page: https://www.quatt.io/working-at-quatt Email me directly ( my-hacker-news-username@quatt.io ) for questions or apply via the career page. We do look for people that can be in the office regularly, so not fully remote.
We are hiring a data platform engineer who will work on platforms that accelerate the transition to carbon-free energy. Return’s main activities are building and operating industrial-size Battery Energy Storage Systems and solar plants. Our operations are located in the Netherlands, Germany, and Spain.
You will be making a measurable (country-level) impact on the transition to renewable energy.
The tech team members have co-founded several companies and/or have experience with remote development teams since 2008. They will personally help you through most of the recruiting process (there is no recruiter involved).
If you call yourself an SRE, DevOps engineer, or a backend engineer, you are also more than welcome to apply!
I have an idea for an organization for getting building close connections among men:
The organization would connect men together and then those men with “chores” they could do within their neighborhood. Yeah, kind of like a free Task Rabbit.
But the idea is that the men go out on a mission together to help random people in their community, whether that’s helping someone move some furniture around, or hang some pictures, or maybe paint a bedroom, or pick up some food for someone that’s sick. The guys need an excuse to hang out together, but they’re helping people in the process. And maybe they can go grab a drink or lunch when they’re done. They get a sense of purpose and something to feel good about, as well as a companion for the day’s little journey.
I imagine people will read this and think this sounds idiotic, and that’s fine, but if you might want to explore this idea with me a little more, my email is in my profile.
I work for a consultancy company that helps companies building and securing infrastructure. We have a lot of customers running Kubernetes at low-cost providers (like Hetzner), more local middle-tier and top-three (AWS, GCP, Azure). We also have some governmental, financial and medical companies that can not or will not run in public clouds, so they usually host on-prem.
If Hetzner has an issue or glitch once a month, the middle-tier providers have one every 2-3 months, and a place like AWS maybe every 5-6 months. However, prices also follow that observation, so you have to carefully consider on a case-by-case basis whether adding some extra machines and backup and failure scenarios is a better deal.
The major benefit by using basic hosting services is that their pricing is a lot more predictable; you pay for machines and scale as you go. Once you get hooked into all the extra services a provider like AWS provides, you might get some unexpectedly high bills and moving away might be a lot harder. For smaller companies, don't make short-sighted decisions that threaten your ability to survive long-term by choosing the easy solution or "free credits" scheme early on.
Termination conditions for GJK are hard, and caused a lot of trouble. Search for "GJK algorithm" and "termination". There are several academic papers, and discussions in the game dev community.
GJK works on convex polyhedra. The "convex" requirement is strict. For example, a cube with tesselated faces is not convex. The two triangles that make up the face of a cube are co-planar, and the edge between them has a zero break angle. This messes up GJK. It's necessary to be able to handle flat polygon faces, not just triangles. That creates a new problem. Polygons are not perfectly flat due to round-off error in floating point. What works is computing a convex hull with a minimum break angle of about 1 degree. That creates geometry GJK can process.
GJK is an example of an algorithm for which there is considerable distance between the naive algorithm that mostly works and the production-quality version that works reliably. Some other algorithms like that include:
- JPEG 2000 decoding. The open source reference implementation is slow and somewhat buggy. There is proprietary code that is faster and works reliably, but it is rather expensive. This is partly why JPEG 2000 never really caught on, outside of medical imagery.
- Mesh simplification. There are two common open source approaches - local triangle merging and quadric mesh simplification. Both can create a big mess if pushed too hard. The metric you really want is that the reduced mesh should look roughly the same as the original when seen from a distance at any angle. Neither of those approaches achieve that. The open source code in Blender works, but the results are disappointing for many cases. Simplygon and Unreal Engine have better approaches, but are proprietary.
- Convex hull decomposition. Given a non-convex mesh, produce a set of disjoint convex meshes which add up to the original. This is a preprocessing step before you can use GJK. Most algorithms for this produce terrible-looking decompositions, with long, skinny triangles. There's something called approximate convex hull decomposition, which relaxes the "disjoint" requirement, allowing some overlap. This results in much simpler sets of convex meshes. There's
open source code for this, but it crashes if the input geometry is not absolutely correct, and sometimes when it is.
- Constructive solid geometry. Create a cylinder. Create a thread form. Extrude the thread form along a spiral. Subtract that from the cylinder to get a screw. Chamfer the end. Autodesk Inventor has been able to do that since about 2014, which is what you get for the big bucks. There's some open source code, but historically it hasn't handled the hard cases well. This matters when the next step is cutting the part out of metal.
- Layered clothing for game characters. Create a game character. Set them into an A-pose (arms out, legs apart).
Put a rigged mesh shirt on them as a rigged mesh. Resize so that the shirt fits and the body doesn't poke through. Add a coat created by someone else than the one who created the shirt. Resize so the coat fits and the shirt doesn't poke through. Now observe that if the character moves out of A-pose, you probably get some peek-through at shoulders and elbows. Automatically adjust the mesh rigging to fix that. Clo and Marvelous Designer have non-real-time solutions to this, and Roblox has a real-time solution. There's no known open source solution.
Each of these problems is good for years of thesis-level hard work.
To alleviate the issue with most applications dumping their files in your home directory, i found xdg-ninja[0] to be helpful.
In short, it scans all your programs and determines if you can configure it to respect the xdg standards. It doesn't work for everything, but most applications do seem to have such an option.
Making goals hard is a case of sloppy thinking. There is no reason to believe hard work is a money maker in software, or that teams working harder leads to more money. Software is mostly a communication and coordination problem; there are lots of dysfunctional software companies and it is rare that the cause is people choosing easy problems. Usually it seems to be key managers believing things that are not true.
OKRs should be achievable and valuable. It is acceptable if they are hard, but that is an unfortunate source of risk and it is better if they are easy to achieve for everyone. You don't want to be in a position where success relies on hard work, great strategy is about achieving an embarrassing amount of success with ordinary everyday efforts that were always going to work out well.
I actually quite like the article because it doesn't seem to be promoting that sort of "goals should be hard" thinking for OKRs.
I like logs. Unlike most people selling and using observability platforms, most of the software I write is run by other people. That means it can't send me traces and I can't scrape it for metrics, but I still have to figure out and fix their problems. To me, logs are the answer. Logs are easy to pass around, and you can put whatever you want in there. I have libraries for metrics and traces, and just parse them out of the logs when that sort of presentation would be useful. (Yes, we do sampling as well.)
I keep hearing that this doesn't scale. When I worked at Google, we used this sort of system to monitor our Google Fiber devices. They just uploaded their logs every minute (stored in memory, held in memory after a warm reboot thanks to a custom linux kernel with printk_persist), and then my software processed them into metrics for the "fast query" monitoring systems. The most important metrics fed into alerts, but it didn't take very much time to just re-read all the logs if you wanted to add something new. Amazingly, the first version of this system ran on a single machine... 1 Go program handling 10,000qps of log uploads and analysis. I eventually distributed it to survive machine and datacenter failures, but it ultimately isn't that computationally intensive. The point is, it kind of scales OK. Up to 10s of terabytes a day, it's something you don't even have to think about except for the storage cost.
At some point it does make sense to move things into better databases than logs; you want to be alerted by your monitoring system that 99%-ile latency is high, then look in Jaeger for long-running traces, then take the trace ID and search your logs for it. If you start with logs, you have that capability. If you start with something else, then you just have "the program is broken, good luck" and you have to guess what the problem is whenever you debug. Ideally, your program would just tell you what's broken. That's what logs are.
One place where people get burned with logs is not being careful about what to log. Logs are the primary user interface for operators of your software (i.e. you during your oncall week), and that task deserves the attention that any other user interface task demands. People often start by logging too much, then get tired of "spam", and end up not logging enough. Then a problem occurs and the logs are outright misleading. (My favorite is event failures that are retried, but the retry isn't logged anywhere. You end up seeing "ERROR foobar attempt 1/3 failed" and have no idea of knowing that attempt 2/3 succeeded a millisecond after that log line.)
For the gophers around, here's what I do for traces: https://github.com/pachyderm/pachyderm/blob/master/src/inter... and metrics: https://github.com/pachyderm/pachyderm/blob/master/src/inter.... If you have a pipeline for storing and retrieving logs (which is exactly the case for this particular piece of software), now you have metrics and traces. It's great! I just need to write the thing to turn a set of log files into a UI that looks like Jaeger and Prometheus ;) My favorite part is that I don't need to care about the cardinality of metrics; every RPC gets its own set of metrics. So I can write a quick jq program to figure out how much bandwidth the entire system is using, or I can look at how much bandwidth one request is using. (meters logs every X bytes, and log entries have timestamps.)
I think since we've added this capability to our system, incidents are most often resolved with "that's fixed in the next patch release" instead of multiple iterations "can you try this custom build and take another debug dump". Very enjoyable.
PSA: Authy Desktop is being killed off this year, which could mean the last opportunity to export your tokens out of Authy (for migration, or for external backup)
There are a few gists floating around regarding how to export by remote chrome debugging an older version of Authy desktop app, which still worked for me recently. This page explains too:
One thing to keep in mind when working with/in small groups is that there is a critical difference between something being said in front of the group VS something being said to any single member in isolation. And someone interacting with groups needs to be aware when to choose which.
On the flipside many people tend to be either more comfortable with a one-on-one OR with a group situation. We all know that friend who is amazing when talked to alone and utterly useless in a group (or vice versa). Someone interacting with groups should ideally be aware which members are outliers like that. Many bad group dynamics can occur e.g. because some group members taking the spotlight steal it from group members that don't particularly like putting themselves into it, but deserve to nontheless.
MixRank processes petabytes of data every month from web crawling. We have hundreds of customers using our data products including Google, Amazon, Facebook, Intel, and Adobe, across industries Sales, Marketing, Finance, and Security.
Team is 41 full-time, full-remote from 20+ countries. We're growing, profitable, employee-owned, no dependence on outside funding. Applicants from all geographies and backgrounds are welcome.
We are looking for passionate individuals for whom programming is not just a job but it’s something they love to do. We're obsessed with computers, programming, big data, databases, compilers, hardware, math, data science, and the internet. Does this sound like you? Please apply to join our team.
Our code base is very friendly to new contributors. You'll have a fully-functional development environment within hours (fully automated) and be pushing commits on your first day. Deployments to production happen multiple times per day and finish in less than 2 minutes. Effectively all of our codebase is written in Python, Rust, SQL, Javascript/TypeScript, and Nix. The core technologies you'll need familiarity with to be productive are Python, PostgreSQL, Linux, and Git.
We operate at a larger scale than typical startups. We operate two datacenters with high performance servers we've built that are capable of dealing with the volumes of data we process. We've implemented our own distributed file system. We do full-scale web crawls. We download and perform static analysis on the entire universe of Android APKs and iOS IPAs that are published. Unlike a typical startup where you'll spend half of your time in meetings, and the other half fixing bugs from Jira tickets— at MixRank you'll get to challenge yourself with difficult technical problems that will help you to grow as an individual.
We're looking for remote junior engineers that have 0-3 years of professional experience in software, and 5+ years of curiosity exploring computers, programming, and technical hobby projects. This is an open-ended entry role with mentorship and diverse opportunities to work on all areas of our product: databases, distributed systems, infrastructure and tooling, data analysis, machine learning, frontend/backend web development, APIs, data mining, data modeling, and more. To stand out, please highlight what makes you unique: passion for computing, curiosity and side projects, work ethic, niche research, etc.
Ideally you've already graduated, but if you still have one or more years left of school, please feel free to apply anyway, and if you're the right fit for the team we'll figure out a way to accommodate your schedule.
--
Software Engineer - Remote (Global), Full-Time
We're hiring generalist software engineers to work on web applications, data mining, machine learning/data science, data transformation/ETL, data modeling, database scaling, infrastructure, devops, and more. We'll cater the role to whatever subset of these areas match your interests.
Beneficial experience includes PostgreSQL, Python, Rust, Linux, TypeScript, Nix, frontend/backend web development, and data mining.
Phileas Energy | Vienna / Austria On-Site | Principal / Senior Data Scientist | Full-Time 45-90k Euro | employee stock options
We are a young startup developing forecasting algorithms for wind and solar power production. We’re applying bleeding-edge ML to reduce costs for green energy producers. You have the opportunity to make a tangible impact towards sustainable energy!
* Be the third in our small, ambitious, tech-driven team
* Shape the future of our company and grow with us together
* If you consider yourself a junior data scientist, but are experienced with meteorology modelling, please still apply
We particularly encourage women and candidates from under-represented backgrounds to apply
Must be authorized to work in EU and willing to relocate to Austria.
Tech: Python, PyTorch, AWS, Time Series Forecasting, Meteorology
Send an email to (my first name)@phileas.energy. My name is in my HN profile.
Our aim is to make counselling and therapy free at the point of use for as many people as possible. We do this by selling a mental health support product to businesses.
We're hiring a Senior Frontend Engineer and a Senior Fullstack Engineer into our small product and engineering team of 10.
You'll be expected to take responsibility for delivering thoughtful features for our customers and share responsibility for architectural decisions on the Frontend.
email calvin[at]spill[dot]chat for a more thorough job spec
We're a small team of repeat founders and seasoned operators on a big mission to simplify planet-positive investing and put power in the hands of impact investors at a scale never seen before. The next generation of tools we are building use AI to interact with the world of sustainability data (large language models like ChatGPT). This is a highly specialist crew with a decade or more of relevant experience in the domains of machine learning and climate finance.
Some of the companies we started, (e.g. Secondmind), scaled to 100+ people and millions in revenue, published extensively in key academic journals in machine learning, and won national awards. We also have extensive industry networks, published works, and numerous advisory and working group seats in climate and sustainable finance.
We're looking for people to play a foundational role on this big mission:
- Mid-Senior Backend Engineer (Python)
- (Research) ML Engineer (LLMs)
- Others (opportunistic, including internships)
We have raised our pre-seed round from top European climate-focused investors (Pale Blue Dot & Frontline Ventures) and we have only just publicly announced the company in September! We've always built high-performing teams where everyone is excited to come to work for the team and to make an impact on the mission. Further details are available on our Notion job page (link at the start) and our website!
I'm the CEO and co-founder — if interested, drop me an email (aleksi@) or email our jobs email (jobs@). It'll come to me either way! :)
Countfire | Senior Fullstack Developer | Remote (but must based in UK) | www.countfire.com
Countfire makes software for the construction industry. Our software is well loved because we try to design solutions that are a magnitude more efficient than existing tools.
We use all sorts of tech, but mostly MobX, React, Typescript, Python, Hasura and Postgres. Looking for people with a good understanding of React.
Previously based in London, now seeking remote devs across the UK.
Banana For Scale | US | REMOTE (anywhere) | Founding Engineer
Seeking a developer with Three.js/WebGL experience to help build a new project from the ground up. Bonus points if you have played around with Gaussian splatting or other radiance field techniques, have experience in C/C++ or computer vision.
Banana For Scale (working title) allows anyone to record any space, then edit it in 3D. Think Matterport + Polycam for interactive space design.
I am currently looking for my first hire, initially as a paid contractor so that we can both test out working together. Ideally this would move to a much larger full-time role as part of the founding team. You don't have to be experienced or interested in management, but you should be comfortable with self-directed work.
I previously founded Hunter2 (YC18), scaled to $1M ARR in < 2 years with a team of three before acquisition. I would like to stay deeply involved in the tech development for this project, but someone with the right experience and 100% focus on coding could speed up our efforts 20x.
KPV LAB Edinburgh | Front-end Engineers | Full-time | Edinburgh, UK | Hybrid 3 days onsite
At KPV LAB we are creating new visually stunning and meaningful ways to explore and present information.
Our tight-knit team of 15 is expanding and looking for more engineers to join one of our two projects,
3D data visualisation, and knowledge exploration. Web tech stack: TypeScript, React, WebGL
(prior WebGL or shader experience is a bonus, but not necessary), Node.js, GraphQL, Postgres.
More details (with pictures of our fantastic office in the centre of beautiful Edinburgh) see
https://www.kpv-lab.co.uk/jobs/
For questions (and even a demo!) start a conversation with our CTO Tom Beddard:
tb @ kpv-lab.co.uk
My favourite technique for tackling dead code is something I saw in a lightning talk at Velocity Conf years ago. I've introduced it at three different companies now, it's worked well in all three places and I'm always surprised it isn't more widely known/discussed (afaik).
It so reminds me of Douglas Adam's Electric Monk from Dirk Gently:
"The Electric Monk was a labor-saving device, like a dishwasher or a video recorder. Dishwashers washed tedious dishes for you, thus saving you the bother of washing them yourself, video recorders watched tedious television for you, thus saving you the bother of looking at it yourself; Electric Monks believed things for you, thus saving you what was becoming an increasingly onerous task, that of believing all the things the world expected you to believe.
Unfortunately this Electric Monk had developed a fault, and had started to believe all kinds of things, more or less at random. It was even beginning to believe things they'd have difficulty believing in Salt Lake City. It had never heard of Salt Lake City, of course. Nor had it ever heard of a quingigillion, which was roughly the number of miles between this valley and the Great Salt Lake of Utah."
My half baked project (more of an idea really) is a toe-clipping robot.
No really, I'm serious.
Like many older folks I have some mobility issues. Nothing that stops me from doing most things I need to do, but trying to bend over every couple of weeks for minutes at a time, and trying to get a good look in an awkward position to make sure I'm getting a reasonably straight cut to avoid ingrown nails is a challenge.
Of course there are all sorts of folks (like myself) who somehow manage, but there are a lot more who can't.
Yes there are things that claim to be solutions out there. A big one is a clipper attached to a long pole with a trigger to squeeze the clippers. If you already have mobility issues that ends up feeling more like a Rube Goldberg solution (I highly recommend trying it yourself sometime if you need proof it doesn't really work).
Yes, you can pay for a pedicure - but those are a little expensive if you go out for it, and very expensive if you pay for them to come in.
The robot itself would need to be able to manipulate two stainless steel plates to clip the nail but not the toe. I suspect a vacuum that has both Lidar and a Camera could be hacked into such a beast - though the programming would obviously be a challenge.
And yes, if you can price it under $1k I guarantee to buy the first one :-)
It's 1000x compared to a very naive baseline, exhaustive traversal of the matching subtree. Nobody in practice would do that, storing the maximum score for each subtree so you can prune is a very common technique, definitely not novel here.
Even doing a Levenshtein-bounded beam search along the trie is pretty much common practice, see for example this paper [1] from 2011.
There are more sophisticated ways of doing this in space-efficient ways, for example this paper [2] I co-authored in 2013.
My mom was a hoarder. She'd buy all the pants at the thrift store that fit my brother and me, because it was hard to find pants the right size. She kept stacks of egg cartons for art projects. She rescued dozens of animals, who peed on the abundant pants.
She bought multiple Saabs when I got my driver's license, because they have good crash survival ratings. She bought damaged vehicles at auction so the neighbors could repair and sell them. So there were just a bunch of busted cars on the property.
Once when I was a kid Dad tried to clean. She begged him not to throw away a small screwdriver, saying "it's my friend."
Nobody was allowed to come over because the state of the house and the property were so disgusting.
I'm not a psychiatrist, but for her it seemed to be a combination of totally absent executive function, emotional attachment to inanimate objects (to which she ascribed feelings of their own), and a desire to have a stockpile from which to provide. Add to that the happy side effect of protecting all of us from visitors and the massive inertia of the hoard that made it impractical to clean up even when she was lucid, and you've got an effectively permanent state of being.
Like many dogs, my dog gets bored and looks for something to bark at. He scans out the window like I scan social media. He’s got extra energy that seems to need to go somewhere, and that somewhere seems to be looking out the window scanning for threats, barking, sounding meaner than he actually is.
It’s like he manufactures anxiety out of nothing else to do.