https://www.pry.fi/en/activities/news/the_finnish_tax_admini...
Once the SMEs and developers signed off on the solution, then it could go to the test part of waterfall, system test, everything launched once during the rollout window. And then maintenance mode.
Last year I had to go to the ER it was pretty cool to see that some of the equipment was stuff I've worked on. I needed a CT scan with contrast, I had worked on the standards body that defined the protocol that allowed CT scanner talk to a contrast injector, and they were using the device I worked on with the feature I defined and implemented.
Its pretty cool to see your work keep you alive.
If it's some random cat pic frontend website code and it breaks, yeah whatever, just fix it as it breaks because you have the luxury of hourly deploys. but on the other side of the spectrum, if you're writing firmware and it's isn't remotely updatable, you don't just sling the code over the wall in the same way. in that realm you have the luxury of an actual spec and a less complicated system.
everyone gets scared. what you do in the face of it is up to you.
I have some friends trying to fix this[1] and they have amazing tech, but it's a difficult industry to break in to.
was this part of the DICOM protocol?
i have worked with medical imaging devices as well, but was not fortunate enough to work with the CT modality. cool stuff!
Digital TV tuning is slow because of compression; when you tune to a stream in progress, you usually can't meaningfully decode it until you receive a I-frame. But I-frames are bigger than motion predicted frames, so it makes sense to only ocassionally send I-frames. Latency: technically unbounded, usually a couple of seconds.
It potentially gets a bit worse if you're on a switched video cable system where your box has to request channels, as now there's a request / response delay. But it shouldn't be too long for local comms... And in theory, the head end could start the stream with an I-frame (otoh, it may not have the processing power to decode/encode).
In theory, a TV with multiple tuners could do predictive decoding to help with channel surfing, but I don't think anybody actually does that.
I really think every SWE should spend a few years writing this kind of thing to be better.
Honestly, that's what it boils down to.
I learned writing medical software but I did way different things before. Anyone can learn that too. It’s just "enhanced software development," there is nothing magical about it. We have a healthy mix of young and old people. There are more women than in other software companies. It’s fun and, in the end, we all want to do a good job.
My whole post may be scary but it’s not. It’s still a regular 9 to 5 job and, most of the time, there are healthy boundaries. I’m not working overtime until 2AM, I just organize myself and work better if I’m in a healthy environment, and the well-defined organization is better for my mental health.
As _HeyLaughingBoy_ said, we follow procedures because it’s the law. Most of the time it’s respected by bosses because they know that it can bite them in the ass should a problem happen. If something bad happens, I’m still not legally responsible though but I’ll feel guilty inside, that why it works too for the motivation but I don’t think about it every day, I do my job like a regular job. Also nothing bad ever happened because of my code, the real motivation is the good things that can happen.
You can make mistakes, but if someone is injured because of a bug, the whole company will have to figure out where the process was not followed properly. You still can be fired for various reasons, but I’m pretty sure that someone will notice that I fucked up before it is released.
The main procedure is called the "ISO 62304" and you may find the PDF on pirate sites if you want to see what it is about. Every medical software company tries to follow it because it is mandatory to get all the certifications. Some companies do take it more seriously by paying for training for the devs which is nice.
I interact with real QA people who take their job seriously. They will write Jira tickets for literally anything that is not precisely defined in the spec. Sometimes they will piss me off for small details but I can’t avoid it, they are part of the process and there is no negotiation.
We also have UX teams who define the best colors and placement of the buttons in the final product.
Most of my job is writing standard software, and nothing critical, but the work is the same. If you have a bug, it must be linked to a spec. Sometimes you have to find the spec, write it, or bother your boss until he finds the spec. Then you write the code and the test to cover that spec. A bug is never a simple bug, it’s a deviation from a previously defined feature, and fixing it needs you to interact with different teams as part of the whole process: Did it happen in production or not? Is there a spec? Where is the spec? Fix the bug, write the test, optionally make sure that it has code coverage, annoy the QA team to validate that it has been fixed, and make sure that you have documented your fix in all the web tools (docs, user manual, GitLab PR, Jira, QMS stuff…). The QA team may also write their own automated tests in addition to unit tests.
As an example, I recently had a meeting with my boss and the QA team because I was asked to fix an obvious bug that was not defined in a specification. It looked like a bug BUT if it’s not defined in a requested feature or spec, is it really a bug? Who decides that it’s a bug if the proper behavior is not documented?
I do actually enjoy writing docs, specs, and tests now. And this whole thing made me a better dev.
Everything is not perfect though. Some companies have bad managers, bad planning, deadlines, everything like a regular company, but I can be proud of the result even if it’s a small fix that took me days to make sure that everyone is happy.
Sadly there's just only so much of that kind of work to go around and we all have to pay bills
After that, I'm proud to have written and run the initial United States city name import script for openstreetmap, waaay back when.
So what are you up to now? (if you can share, that is!) :-)
I'm trying to find the motivation to finish the C23 part of the C Guide. :)
Revising the Networking Basics guide.
I'm also starting to write an Analysis of Algorithms guide that I'm going to need plenty of help with because I'm not super strong in that area. :)
I had no idea what I was doing at the start. I'm very, very lucky that it worked out the way it did.
It's pretty long in the tooth now - it's pretty old! But there's an amazing community and new core team that still keeps it up to date.
It matters. When people can't hear, they lose their social lives.
I haven't worked at that job for almost a decade, and last I heard it's continued being used with only a small amount of maintenance.
That's the most compliments I've ever gotten for any software I've ever written and it had very real human impact.
In my case, however, I sufficiently automated the job that they didn't replace me when I left. I got a call ~4 years later because one of the macros broke when they finally updated Excel. Fixed it for a small fee, and to my knowledge they're still using it today.
I wrote a script which finds new commits not present in the master branch and compares them to the corresponding issues in the issue tracker (each commit message has an issue ID as a rule so it's easy to find the connections), and then generates a nice report like "the release branch cannot be released as is because issue 1234 is not marked as ready by QA, while commit 3456 is not present in any of the listed feature branches and could be a result of an accidental merge".
After we started using this script, the time it took to verify release branches decreased to something like 10 minutes. The techlead finally decided to delegate this kind of check to other devs (not a bottleneck anymore).
The idea was then copied by all other teams (web devs, etc.) and the script is still in use today, with many more features than I originally envisioned.
That small silly script was probably my most useful contribution because it saved a lot of time for everyone.
What do you think about the direction medical mo ignoring is going g? Data collection, enshitification etcetera.
Is it a beat up?
Are we correct to be worried?
Having said this, some of my more cynical friends have told me: "You weren't saving lives. You were just helping these companies reduce their insurance premiums."
The project moved the needle for the amount of solar power that could be confidently installed into electricity networks in Australia, and many countries around the world. I got heavily burnt out, didn't get any equity, and initially took a substantial pay cut to work there, but on balance still the most impactful work I've done, and will be hard to top.
I got bored of coding these reports. Bit by bit, I built a templating system and a configuration-based way of building these reports. Users were able to get reports not only in CSV files, but also in HTML, plaintext, and Excel files. They could get them not only by email, but also via FTP and SFTP. Reports could be customized in a variety of ways. Most importantly, with the new system, I could turn a report around in about five minutes.
When I joined there were less than 20 reports in the system. When I left, there were hundreds. Our internal users found these reports valuable, but the emotional cost of requesting and waiting for one was a burden. Removing this burden was a pleasure.
No one ever said that this needed to be done. It was an itch that got scratched.
A few minutes later my boss gets a call saying someone is having trouble accessing the server. Turns out that single machine hosted staging and production. My boss kept his cool and we put up a more friendly error page saying it was down for maintenance, then started the 16 hour restore process. Somehow I kept my job, probably because he realized his incredible negligence.
The biggest impact I had was pushing the parent company to buy better servers, and set up proper isolated environments with minimal access. Preventing the situation from happening again.
I have hired close to one hundred engineers over my career, and I humble myself to every single one of them with this story. I want people to understand mistakes happen, how we handle them as a team is the most important thing I want to cultivate. I learned a lot from that job that became foundational to my career.
This made academic advising difficult for a variety of reasons. One big reason was the fact that all transcripts were text based. To figure out where a student stood academically, you had to take a pen and mark up their transcript, totaling their credits in different areas, in order to see which graduation requirements they had met and which they still needed to fulfill.
I wrote a program that parsed every student's text-based transcript, and generated a visual transcript for each student. What used to take 15-30 minutes for each student now took about 30 seconds. You could look at one of these documents and see exactly where a student's strengths were, in what areas they had struggled, and most importantly what they still needed to do in order to graduate.
It wasn't just a time-saver. The main benefit was that those 15-30 minutes that used to be spent parsing a transcript, with fingers crossed that no one was making a mistake, were now spent focused on formulating a plan that students could buy into and feel confident about.
I wrote that tool during some inservice days where my very cooperative principal let me skip out on boring repetitive trainings to focus on building the tool. I was able to build something I could run in that time, but it would have taken a lot longer to build a general-purpose tool that they could run indefinitely after I left. I haven't looked in a while, but I hope that some of the companies that handle student records have built these kinds of tools into their software. There was some movement in that direction last time I checked.
I find it useful myself atm, I think it has the largest potential impact of any project I've worked on before. (https://affectablesleep.com).
I've heard that it's made it as far as university HPC clusters to help control iffy code written by students; I'm glad I managed to make that stuff a bit easier for the people operating them.
It's not the flashiest or most glamorous project I've worked on, nor was it the most technically challenging, but I think far and away it's the most useful code I wrote by pretty much any measure of useful.
Alas, the company I was at that was doing that work moved away from it before we could finish everything we had planned to build because it wasn't profitable in the way that could justify keeping it alive once it had accomplished its goal of being a cool line item we could say we did in investor pitches.
I later designed the first web presentation system for UK digital government records, and the mandatory access control system for them.
- an open source OIDC authorization and identity server (Ory Hydra and Ory Kratos)
- a system that uses computer vision to track food waste in industrial kitchens, helping them understand and minimize food waste
- a live milk quality estimator for a milking robot
- a browser extension called memorize. I wrote this reusing code from another contract I did while still in secondary school, and I'm mentioning it thanks to a user named lush berry who wrote "literally the most helpful thing i ever found on the internet. it helps me memorize stuff even when i'm procrastinating which is amazing. however, i have a lot of suggestions, does anyone know how i can contact the makers of this extension?". I wish I had the time to listen to these users and make the changes they want.
I think the 30 minutes I spent to automate this was the best return on investment I ever reached, because the script was used for years by many people and did not only help to prevent us from penalties but must have saved a considerable amount of time over the years.
The challenge in that context was that the compression should be done in an IBM mainframe without buying C because it was a infinite bureaucracy process. Another challenge was that it was not possible to connect the mainframe to the ethernet network because they also need to buy an expensive network interface. So we cannot compress it in a normal PC and transfer it automatically.
We did two versions one in Cobol and another in REXX.
It came about when I was working on the site for a local newspaper where the writers would work on articles using an internal copy of the site which would then be migrated to the live site when published, but when they linked to other articles, they would often copy-paste the URL of the article as it was on that internal site, causing a broken link when the article was published. Rather than try to teach a bunch of crusty journalists what relative paths were, I just wrote a bit of code to fix those URLs for them. With the client's permission I later cleaned up and open-sourced that module.
At its peak it was installed on over 70,000 Drupal installations that we know of (not all of them reported usage data). It's still being developed, though by other developers in the last few years as I have lost interest (and client work) in Drupal, but I'm still quite proud of it, and I still love to hear from people who say it was a must-have for their sites and made their lives so much easier.
There's a little video we made for our KDD'18 paper about it: https://www.kdd.org/kdd2018/accepted-papers/view/an-extensib...
Another cool project was to develop a state of the art legal search engine that was put into production across law firms in the US, and that was/is used by the U.S. supreme court justices (they were given anonymous accounts so even we could not tell who entered which query).
I started another project that turned into 8 figures of revenue but it was shut down for being too small.
In that project I wrote the software that receives the call, matches the caller number to the customer record, encodes the customer location information in the metadata of the call, and (based on the location) routes the call to the local emergency services call center.
While the task was quite simple most of the complexity of the project was to make sure that this service was highly available since downtime could have a detrimental effect on the health of customers.
¹ https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunika...
We started building this back in k8s 1.4. Now you can just buy shipyard.build the weirdest part was we called our system drydock and shipyard calls their individual environments drydocks.
I literally cant imagine how i would write software at a medium+ company without ephemeral dev environments anymore.
My most useful project is arguably the Bürgeramt appointment finder, which makes a sound when it finds an appointment, saving the need to refresh the page every 3 minutes for hours.
My most used project is a simplified tax calculator. It was just meant to give people an idea of their take-home salary, but it became the most popular page on the website. I really need to keep improving it.
I just love working on this project, in large part because the readership is amazing and the work conditions are unbeatable. The only downside is the constant exposure to what is wrong with Germany.
For example I made a tool to create Azure DevOps tasks faster during Sprint Plannings. It allowed us to create tasks in batches, with templates, and displayed total time of tasks being created for a User Story.
It saved each team between 30 minutes and one hour when planning large sprints.
We would receive updates once a week, and it would take 2-3 12 hour shifts in a row to do this. Lots of “copy this, cross reference that”. I spent a few weeks reading Mr. Excel forums and tried automating it, which brought the total time down to just 10 minutes.
Of course, after I left, they went back to the old way because the new crew “didn’t trust the computer”.
Made it public and I've been receiving daily emails from users about how it has improved their eye health significantly. Nothing brings more joy to me than this.
[0]: https://lookaway.app
Helps startups founders get feedback, exposure and first sales over a month of rankings.
Also worked on robotics and biomedical devices in the past.
[1] an old fashioned B&W monochrome LCD.
[2] its a stupid little dumb terminal
Me and the team talk to every single person who works with us. Every day, customers tell us we're giving them their lives back because they can finally breathe.
I filmed my cousin, our doctor, as he gave me an impromptou allergy specialist visit. Now those videos get millions of views per month from people all around the world.
Much more fulfilling than any other job.
The company: https://www.wyndly.com/ Our viral videos: https://www.youtube.com/@wyndly
It’s neat to get an automated email everyday telling me how many people parked their bike using it.
A big name consultancy was trying to sell a software suite for $5K per seat when this was the only feature most people wanted.
* though my understanding is almost everyone on the project struggled to get promoted since it was behind schedule