Hacker Newsnew | past | comments | ask | show | jobs | submit | dqh's commentslogin

I work on the software stack for a biological computing platform (think: tool for programming with human neurons in a dish).

Coding work spans FPGA (SystemVerilog), Linux kernel C, userspace C, Python, and yes, some web services and Browser JavaScript also. I also work on the network engineering of the cloud service and on the Linux OS image.

Easily the most fun I’ve had as a developer and I’ve worked on lots of different types of commercial software projects before. Not all the world is web apps, embedded work can be very satisfying if you’ve not considered it.


Can you expand more on how the tools tie with the biological part? This is very interesting!


The neurons live on an electrode array kept inside a machine which keeps them alive (body temperature, sugar, gas, etc). The embedded system continually measures the voltage at each electrode, and can electrically stimulate the neurons via the same.

Users are provided with an easy to use Python API that allows realtime observation of the raw signals and of detected action potentials (spikes). They can also execute precisely controlled stimulation sequences, which allows information to be presented to the neurons. Then there are a lot of higher level application APIs to handle things like recording data, real-time visualisation, and experiment config management.

Why: it appears to be possible to teach neurons to perform tasks (we taught some to play pong several years ago). Since then our focus has been on building a system that enables rapid iteration in this sort of research. We're selling the system to organisations that have the appropriate biology skills, and renting access to hosted devices where we provide and take care of the cells.


Woooah. Impressive. Sounds like a very fulfilling and interesting job! Love anything that makes software integrate better or impact directly the physical world


If a programmer is more efficient with AI then you need fewer programmers, assuming a fixed amount of work is needed. So in that sense AI would be replacing programmers.


I've never worked at a company that would choose to have less programmers instead of choosing to do more work. I guess such companies exist though.


This reminds me of the time when Quake started rendering inside the start button of the Windows 95 desktop (or maybe Win 98). I wish I could remember the details but it think it was something to do with alt-tab.


That quirky effect is a known quirk of early DirectDraw/WinQuake on Windows 95/98. When a game grabbed the primary surface in certain modes, parts of the desktop GDI (like the Start button/taskbar) could briefly be overdrawn or show the game’s backbuffer due to how DirectDraw managed the primary surface and cooperative levels in fullscreen and windowed modes on those systems.


This sounds incredible and makes me want to go through a similar learning process. I don’t suppose anyone could recommend a book or course along these lines?


A lot of us started out putting together some of the circuits in Forrest Mims Radio Shack books [1]. He does a good job of explaining how they work as well.

And then there is an amazing site with (thousands of ?) electronics hobbyist magazines archived [2]. If you want to start browsing, they often ran series in their issues along the lines of "getting started in electronics". Regardless, some awesome projects in there.

But if you want to go back pre-transistor (ha ha) the U.S. Navy had a great series on learning electronics [3]. Def. analog.

[1] https://archive.org/search?query=Forrest+Mims

[2] https://www.worldradiohistory.com/Popular-Electronics-Guide....

[3] https://archive.org/details/basic-electronics-volumes-1-5-by...


The Art of Electronics is an incredible resource. They have a companion book which guides you through hands-on labs. I have not read it, but I trust that it would be worthwhile.

https://learningtheartofelectronics.com/


Thank you - I recently picked up the art of electronics but wasn’t aware of this companion book.


I've never liked the idea of community actions in the critical build path, so I use official actions/* when I can, and otherwise use actions/github-script to invoke the GitHub API via inline JavaScript when I can't.


I agree on community ones, but I’m happy to use the official actions from vendors like the Terraform and Azure ones too.


You could have some kids, and let them lead you :)


> This is in spite of having a long list of technical accomplishments and an impeccable public track record under my belt.

If skills aren’t the problem, one possibility is that a rigid attitude, lack of humility, or something like that is rubbing interviewers the wrong way. Please forgive my unsolicited advice and good luck with the search.


Or honestly maybe just bad luck. Lots of possibilities for just a one-off internet comment.

But yeah no doubt wise to do some self reflection and analyze what one could do better when trying again. One shouldn't just continue the same strategy without reflection when faluire occurs. But also don't be too hard on yourself, sometimes things just don't work out.


I hope it's bad luck because I struggle to find what else to improve. I can launch high quality projects quickly and reliably and my main concern is product-market fit. I feel like I've tried everything and its opposite. Problem I face now is I've lost a lot of faith in the system and it requires a lot of energy to maintain my work ethic and also maintain the outward appearance that I still believe in success. I often feel like I'm only role-playing entrepreneurship and there is no chance of success.

Sometimes I feel as though I'm being hindered artificially by some hidden forces but I try not to focus on this. It's partly why I share my experiences online and why I talk about this with my co-founder and family members. It helps when others validate my experiences because it can often feel like too many coincidences.

I worry the feeling might get worse with AI now literally manipulating people's psychology and thus, the markets as well. There's a chance my fears may become reality.

It'd be silly to keep working on a startup if there was a super-intelligence preventing me (or any new industry entrant) from succeeding right? This is a new reality I may need to factor in at some point. Would have been insane to think that way 5 years ago. Not so insane anymore.


Sounds like you might be burnt out and could use a break. If you're just roleplaying your belief in success at this point, maybe it shows in your job hunt and is the thing getting in your way.

That said it's tough out there and luck/timing is a huge factor. Be kind to yourself


You don’t need to fast, you just need to stop eating carbs.


Own a strict ketogenic diet right. Feeling absolutely great. Gotta cut down before the Christmas fattening.


45 here, happily married with kids and yet I love writing software more than ever.


An 80 character limit is difficult to stay within when using highly descriptive variable names, and I think the benefits of highly descriptive variable names outweigh other considerations.


In my experience, if your variable names are long enough to overflow an 80 column limit, you've probably already got a problem. Longer variable names have a cognitive load in and of themselves, which, to me, usually means someone didn't think about naming enough or is subject to too many levels of pointless indirection.

To me it is important to try to keep code concise so that it is easier to read. This applies to variable names as much as it does to how many lines a function is. The smaller the unit of functionality it is, the easier it is to understand in its entirety.


I care less about the length of the code, and more-so about the cognitive load. As the business logic grows, and the lines of code increases, the assignment of variables tend to get further and further away from their usage. What was once simple to read, now requires back-tracking as you read to double check exactly what they are.

Consider this contrived example:

    margin = (price - cost) / price
You can be reasonably sure what is being calculated, but it's hard to be exactly sure unless the surrounding context is very small. Having longer names allows you to keep more context for a line in isolation, meaning (personally) I require less backtracking while reading.

e.g. the above could be rewritten as the following, removing a lot of ambiguity:

    retail_margin = (retail_price - wholesale_cost) / retail_price
I find 80 character limits much too small in these cases. 100-120 characters is the sweet spot for me. I can still have 2 split panes of code on a single screen at once, and write more expressively without excessive linebreaks per statement.


Perhaps instead of using highly descriptive variable names, use reasonably descriptive variable names?

Names that are too long impair readability rather than helping it. You want names that are as long as necessary to meaningfully, semantically distinguish identifiers in a given context, but not any longer.


I'm comfortable that I'm writing code that's easy to understand and modify years later.


It's not impossible if you're using an indent of two spaces and not doing a lot of nesting.

I think 100 characters would be a better limit, though.


Yes, not impossible, but in my opinion requiring a waste of energy.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: