What has been your most fulfilling job/project and why?
I've been looking to make a change away from typical enterprise development (full stack web developer) as it's not just about the paycheck any more. Recent events have given me a different perspective. Perhaps looking to join a team of great people doing something worthwhile or start my own consultancy helping people solve problems in a sector I can feel good about. Just not sure what that service looks like yet.
The best bit about being a developer I've found is when working directly with the customer who is in some distress and the look on their face when you solve the problem and make their life easier, even if it was easy to solve. I'd love to find something where every day was like that!
Due to the embedded real-time, mission-critical aspect of the software, the strictness of the process and focus on documentation can be frustrating. The space industry typically doesn't keep pace with new technologies, so we're often stuck using "tried and tested" tools that can feel antiquated. I sometimes feel jealous of developers at agile startups keeping pace with the most new technologies and frameworks that are desirable.
But the knowledge that I will have a significant amount of code that will (hopefully) run on another planet in the search for extraterrestrial life - something I can consider one of the most important thing our species should be doing - is extremely rewarding and motivating.
Funny how the grass is always greener... Many times I feel like the grumpy ol' man, shaking my fist at the young'uns for not recalling the lessons of yesteryear when jumping on the latest tech band wagon.
There's definitely balance to be had, calibrated accordingly with your appetite for risk, but in my experience the "boring" tech almost always wins the cost/benefit equation. Too many times have I seen new developments fall into the "instant legacy" category simply because the tech they use isn't yet well known and explored (to them, or at all.)
We need 100% branch code coverage at unit test level, and have function validation tests written in Java that validate the software against the requirements, running on simulated hardware. Similar tests are run against simulators with progressively more hardware-in-the-loop for more confidence.
Sometimes users will have minor (or major) issues with the way a tool works - database takes 30 seconds to retrieve a certain type of information, there's no clear path from point A to point B in a frequently used business tool, certain jobs take 2x as long as they should, etc.
These issues don't have much of an impact on management or the bottom line, so they won't be assigned to anyone to fix. But if you spend two hours speeding up that tool or streamlining a frequently used process, the 'work done' to 'that look on their face when you make their life easier' ratio is incredible.
Making a user's job take less time frees them to do other things. Those other things may have value; that value is only captured because of the time saved due to your effort.
Even if that time becomes effectively 'free' time for the user, that increase in happiness and morale makes them more likely to be more productive in other areas, less likely to leave the company (however small an effect), etc.
Don't dismiss something that makes someone's life easier as having no monetary value just because you can't easily quantify it.
My ideals agree and I’ve banged my head trying to maintain boundaries with my managers, now 5 jobs in. Experience is with VC in Bay Area... work life in Minneapolis was pretty chill tho, 2 longer jobs there with good people.
The workflow was pretty unique and there wasn't much out there that could tackle it in the right manner with price constraints in mind. I set off to rebuild something from the ground-up but tailored exactly to what the users wanted (I kept track of all the complaints of previous solutions). Because this is specific to the company, I was able to make many of the routine tasks automated and reduce time users needed to spend with the tools. Now they actually enjoy when they do! There is no gimmicky extra stuff, it's just software that solves their day-to-day problems. The application I built is super boring, nothing groundbreaking or inventive, but it works.
Seeing it run smoothly in production and having people enjoy the UI/get to spend more time on other things has been quite gratifying.
I think it's part of why I like UX(though I do full stack), at the end of the day I like solving problems for people and making software that's pleasant to use. I've seen so many people struggle with an unnecessarily complex interface and it hurts my soul. The relief on people's faces when they can fix their issue quickly is so satisfying.
I am a bit frustrated with how the FE operates with this company, they don't seem to care about ensuring good UX, I'm not even involved in their sprint cycle, they just build things AND THEN ask me to fix the UX if someone points out how terrible the products are. (And obviously with TONS of restrictions saying the codebase/architecture wouldn't allow it - smh)
I understand I'm still new to the company(4months), but this has been by far the worst design-FE collaboration I've ever experienced. I tried to schedule a meeting to address these issues in a professional manner, but they canceled it and said it's not important for the company now.
I really take joy in solving problems for people with good UX but now I just come in to work to design CEO pitch decks in PPT and get paychecks... the pay is alright but it is really not rewarding at all professionally. Should I jump this ship? Do you guys have any advice for me?
Too many focus on kissing up to the big-wigs, which works to get them more money and status, but I feel I make a real impact by helping the rank and file.
It comes with downsides, too, which I'm sure this community can rant about ad nauseum. But truly, if your primary goal above all other things is to have the experience of making someone's day better as an every day occurrence, one should be doing application support in large corp.
I would argue though that such improvements do not have an impact on the bottom line. Sure, any one of them may improve the efficiency of one or a few employees by say 3%. However, many such small improvements have massive compound effects.
Now every time I am having a hard day I pull up the Google Analytics of that system and look how many people have scheduled an appointment today. I might not have fixed everything, but just knowing we made something better has been the most rewarding thing I have ever done
It all comes down to this. Well done. It's so easy to get stuck in the weeds and forget the real goal.
The charts had a very steep slope the first time that I ran them with a large gap between the best and worst centers. The top centers keep improving every year, but there has been a huge improvement at the other end of the graph and the slope is almost a flat line at this point.
Obviously the care teams deserve 100% of the credit for the hard work to improve the medical care they are providing, but I can't help but smile every time I see one of those charts online or in a report.
Anyhow, really inspiring story and great job!
There was nothing complicated in what I did, but there seems to be such a backlog of worthy projects that just someone that can write some simple loops and conditional statements. There just has to be a way to empower more people to code.
Later I ported it to the Raspberry Pi and added a price tag. Surprisingly people started purchasing the software and I slowly build a complete hosted service around it. Today it's a real company and profitable. Why is it rewarding: It's fully boot-strapped and as such there there's no need to rush new feature in the hope of finding a working business model eventually. Instead I can focus on quality and that alone is fun already. The other aspect is that it requires a vast range of different technologies properly working together: From the custom built Linux distribution for the Pi, the visual software that controls the output (written in C/Lua) up to the Website/Service/Cloud stuff. And of course building custom solutions based on the platform together with customers and see those running in production. I'll never get bored as a result and always learn something new.
Having written this I think the take away is you don't necessarily need a reason to go places- just go!
I once started a project to add in A/B testing to a legacy platform that really wasn’t supportive of any such changes. The project was a technical success but a political disaster. The aftermath made it very clear that my manager was hoping I would fail so that he would have an excuse to manage me out. When it didn’t fail he became a lot more obvious in his attempts to get rid of me. I also suspect that some of the issues that happened during the project were setups, but I can’t prove it.
Why am I proud of that clusterfuck? Because it proves that I can still succeed even when powerful people dont want me too. The problems I had at that job were political and not due to a lack of ability on my part. I’m not saying that I am without fault in allowing my relationship with my manager to degrade to tgat point. But I gained a lot of confidence from delivering a working product despite adversity. That confidence led me to a much better job.
I spent 15+ years in the Medical Device industry and that's probably been the most fulfilling job.
Why?
Medical Device software is extremely process-heavy, progress is slow and methodical and it can be absolutely soul-crushing if you look at it the wrong way. But:
Sometimes you hear from an ex-patient how you saved her life.
Sometimes you get to fix a problem that affected your own child.
Sometimes you take pride during a doctor visit in knowing your blood is going to be analyzed on a machine you designed and coded for.
Sometimes you simply enjoy the fact that you're putting out a very well-engineered and solid product.
And it's fun: most of my software career has been controlling things that move. When I hit Start on the debugger and several dozen motors spring to life at once, clicking and whirring in their orchestrated sets of motions, it's an amazing feeling.
Look at their websites and see what types of positions are available and what type of work seems interesting.
You could also call recruiters working in that area and see what open positions they know of. Aerotek is in that field and I always liked working with them.
I spent most of that time writing the software that downloaded images from the Sloan Digital Sky Survey, located the galaxies in them, cut them out, and placed them with the correct location & scale in the animation software. The best part for me has been getting to work on a project I really believed in, even though I had absolutely no experience with films or astronomical imaging. I just jumped into the deep end and had to learn as I went.
Writing code that puts things on a 6 story tall movie screen is such a different experience than pushing code to an app server to serve up banking apps. Hopefully the work I did here will go on to inspire someone else to have the same love for space that I do.
Wow. Just Wow.
I have already emailed the link pleading for a London release.
Career-wise, I've stressed myself out way too much over small wins, but there are two projects that I was happy to have the fortune to be involved with.
1. I relocated my family across they country for a year to work at an Obama White House Champion of Change startup. I helped create an app that is used by thousands of students and public transit users to have a safe, cheap, eco-friendly ride home through Microtransit. The safe ride capability has been used by enough university students by now that I hope it has kept drunk drivers off the street and possibly saved someone's life.
https://transloc.com/microtransit-ondemand-software/
2. About 5 years ago, I worked on the consumer facing apps for a competitor to Nest, called Sensi. The thermostat was recently ranked to have the highest customer satisfaction in its class by J.D. Power and Associates. Last I heard it was in over 100,000 homes, and has kept a lot of coal from being burned by power plants in America.
If I were to do it all over again, I would've been way less concerned about money, and probably entered a field other than software development. I'm thinking of getting LEED certified and going into green building design and/or solar installations in my second career.
Cool factor is just working on cutting edge stuff or with some tech I'm super excited about.
Recognition comes from the community your are doing the project for (team, manager, etc.) recognizing its importance. This typically only happens if you pick projects which solve a business need and communicate that. Preferably lead to higher revenue.
Process is the end to end process of systematic identification of the problem via concrete quantitative metrics, formulating a solution using a scientific process, building the system following sound design principles, etc. It's kind of difficult to concretely define. What it is not is putting out fire after fire everyday.
This is the recipe of successful project I enjoy nowadays.
The recipe changes from person to person and time to time. The way to figure out your recipe is to introspect. Cut out the noise of FOMO, hyped tech, etc.
A good article I have read recently about deciding what you want is https://waitbutwhy.com/2018/04/picking-career.html. This will explain how to introspect in great detail.
It's not playable yet but it's been very rewarding so far getting the visuals in sync with the music, learning how the GPU can draw things fast, writing basic shaders, finding out how the computer plays sound and being able to manipulate buffers on a sample level etc
The first was at a fastener wholesaler. There was a sales report that would be built once a month by a sales person. It pulled data from a backend ERP system, combined it with some other data sources, and generated some trend graphs and summaries. The whole process took about five days of manual labor. It used to be done once a month, by a sales person. I've built a set of tools to do this which would take an operator about 10 minutes to run. It ended up being run daily, weekly, and quarterly. Everyone was aligned and on the same page!
The second was at a financial firm back office. One of the side responsibilities was generating reports for clients. These contained mundane things like trades summaries of various kinds. They were delivered in CSV or plain text format via FTP or email. It used to take a couple hours of work to build a new one, and output options were limited. I've built a reporting framework that added a bunch of output options, including beautifully formatted Excel files, and cut the config time down to about 10 minutes. By the time I left, we had over a thousand such reports being run daily.
Both projects opened up my eyes to how much value good software can bring to an organization, and how much impact a single developer can have.
I recently decided to package up some of that experience into a package and offer it for sale. I run https://goodgrids.com, which allows companies to automatically convert CSV files to nicely formatted Excel files. This project is fairly new, but it is very personally rewarding.
I’ve been lucky enough to have been paid to write open source code on multiple occasions. That’s a great shortcut to having a big impact on the world. The best stuff I ever did was something other engineers told me was impossible - but I did it and it was good enough that other people went and built businesses around it. Or, in one case, a project that my manager told me I was doing too much for became the foundation for an entire community’s work.
However, probably the best for me was an algorithmic art project in the early days of social media. I was in between jobs and when I had the idea, I barely slept for a week. The code was terrible although the idea was interesting. Once the work was released, it was a modest sensation, and people were talking about it around the globe. One commenter even said it made her cry. I am still enough of an engineer that I had this “NAILED IT” moment. I remember looking at clubgoers on a Friday night, people I’d normally have felt irritated with/envious of, and thinking they had no idea how to really have fun.
Lately though, I’ve found a slightly different source of satisfaction. In my last job, I started to manage some people and found it extremely satisfying to help people with their careers, particularly young engineers. I also led projects to reduce hiring bias.
(You might notice that few of these high satisfaction projects had to do with how much money I was paid or whether it was something my manager wanted me to do. Still looking to square that circle.)
A) The whole team was responsible for the project, if the framework broke we took the blame as a team rather than crapping on individuals
B) PRs got seriously reviewed, there were strict rules about what was a quality PR and our team lead ensured that they were enforced. At the start of the project I lost several days of work because my PRs weren't of sufficient quality.
C) We got a start a project with no legacy code, building everything from the ground up. We had architecture meetings, everyone's input was vetted and valued.
Since then I haven't worked on a team where I felt that things were as cohesive. People make shitty design decisions and are not receptive to criticism. Lots of rubber stamping "approve" on PRs without actually reviewing the code, or accepting PRs without unit tests. Inheriting legacy code which was written poorly, but still has to be maintained. Nothing quite has the same feeling as that first project.
At the end of my tour I read the ISC2 course book for the CISSP and passed the test on the first attempt. So now I just tell people to read the book and take the test from a management perspective and people look at me like I am crazy, because the test is so hard.
My most rewarding job for purely the software angle was being the A/B test engineer at Travelocity from 2010 to 2012. I learned to master walking the DOM. Some of our tests were extremely ambitious to the point of wildly defacing large areas of complex pages on the site. Your code had to be defect free and execute before the regular areas of the page displayed to the user. Some of our experiments comprised multiple various pages and required altering the browser history and moving people around the site in non-standard ways.
I learned to master my JavaScript browser interaction skills doing this job. You could not wait for framework or library code like jQuery, because it loaded too slowly and would bias the experiment. You simply had to learn to do the job against the actual web technologies. You also had to learn to execute quickly, because there were always more experiments demanding attention than we could ever get to which means potential lost revenue. It was always challenging and always rewarding. This job is what elevated me to a senior developer.
Can you elaborate more on that? I'm interested.
In short the CISSP is the most respected certification for information security management even though the ISC2 organization offers more advanced certifications above the CISSP. I believe the SANS certifications are more respected technician certifications now, but they cost something like $4000 and you have to travel to their location to certify (or so the rumors claim).
The CISSP exam is vendor agnostic. You have to apply and be approved to take the exam and it costs just shy of $700. Even with that price tag it only has about a 60% pass rate.
When I took the test back in 2010 it was 250 questions and you had up to 6 hours to take it. Many of the questions had more than one correct answer so you had to read it carefully to pick the most correct answer. Many of the people who failed it, those that I knew, failed it for tactical reasons. It is a senior management test so I always tell people to remember on each and every question managers document and then they delegate. They don't do the real work, so if you answer any question with putting fingers on a keyboard you are likely wrong.
The test wore me out as I took 5.5 out of the 6 available hours. Some of the questions were rather long like a page out of a textbook.
I think if you pick a nonprofit with a mission that you feel passionate enough about to really give it your all then there's a good chance for you to quickly become a double-digit percentage of global technical productivity in a particular charitable domain.
For me it's been developing tools (mobile app and website) to help people with substance abuse issues communicate with their loved ones, themselves, and medical professionals.
1. Colleagues. The fact that non-profits are underserved by tech works, also means that you're less likely to have talented colleagues to learn from. 2. When they're not tech organisations. There might be a lack of understanding of both the opportunities and challenges for tech in their specific area, and I'm not sure I'd have some influence in helping with that. I really don't want to be the person who maintains a Wordpress site for a non-profit, and don't think I'd actually be that effective in contributing to their mission that way either.
What are your reflections on that?
I had the knowledge, and the desire, but probably lacked confidence in my ability to be the lead design engineer for such a large project. I had always worked in a NOC/operations role where I excelled at any task that was put in front of me, but I had a lot of questions, always.
Fast forward a few years - I took a leap and went for it. I got hired on for a 9 month contract to replace racks and racks of networking equipment, an entire replacement of everything layer3 and layer2 in this datacenter, complete with remote monitoring/management facilities.
I went full bore - I didn't sleep much. I ran the systems I was working on at home in my lab, virtually, and basically taught myself Juniper and Arista from the ground up - having only worked on Cisco devices previously.
Long story short, the conversion was finished ahead of schedule...but the contract had me there for a while longer, so I got tasked with a bunch of crazy 'stuff' - things that I've never touched. Load balancers, traffic shapers, linux servers (that actually did 'stuff') - just a ton of stuff to learn, understand, plan, and implement. Around this time is when I also got my introduction to the Python language (but that's more of a way to make things simpler to me, rather than what actually pays the bills).
It was through those 9 months, that I became so confident in myself and my abilities. I no longer doubted myself. I no longer thought that my questions were stupid. Because of that, I flourished. I've been in a senior network engineering role ever since...and finally feel like myself. It's great. Literally changed my outlook on life.
Sadly, if I tried to launch the site today I don't think it would succeed. It's too hard for a stand-alone site to get attention nowadays, especially with the domination of Facebook and Twitter. Perhaps one day the quirky organic web will return, but I am skeptical.
Try to go some meetups not developer related and hear the people’s problems at hand.
Then you can chime in with your developer perspective, which other people do not have.
And from this, both sides can mutually share their experiences and benefit from each other. And maybe this is where your future might be.
What I do find incredibly rewarding is game development. I participate in game jams [1][2] - and the sheer enthusiasm of players with regards to your game is worth every hour of a stressful crunching weekend.
I also maintain a restoration project for a deceased game [3][4], and while the community is small, sometimes we get new people who stumble upon their erstwhile favorite, and there are similar reactions.
So yeah, I think game development can be quite rewarding when you are in touch with your community.
[1]: https://whalesandgames.itch.io/wizsnooks
I was the one to train our first customer (CFO at a carpet manufacturer), who after being shown that they could get fresh data in their spreadsheet each month by copy/pasting a column and updating the period value, physically pushed me away from the keyboard and just went to town. Turns out he was spending 2-3 days each quarter copying data over manually for his reports to the board. The ability to use Excel's charting features meant he could now get it all done in an afternoon.
That little app has now become the focus of the entire business, with versions for Lawson, Oracle Financials, and various other ERP, etc. packages, providing employment for almost 100 people.
I wish I'd negotiated a percentage. ;)
I'm a former tech recruiter and now I'm a resume writer and career consultant, and I've written for many here on HN as well as clients all over the world. Most of my work over the years has been with tech professionals, but right now my clients include a mobile developer in Australia, an engineer in Japan, an entertainment professional in LA, a product manager in SF, a nurse in Seattle, and about a dozen software engineers. I've written in the past few months for award-winning human rights advocates, film directors, journalists, doctors, and countless other professions.
I make a good living and at least a few times a week I get a note from a past client saying they got an interview at their dream company or just landed a job they really wanted. Getting paid to help people and make a measurable impact on their lives is a big difference from how I felt about recruiting, as there is no conflicting alignment of incentives as a writer. The opportunity to meet people around the world and learn about different jobs is a bonus.
I was following a group (it.comp.console) at the time using thunderbird but I didn't like google groups so I wrote my own nntp web frontent to follow the group on my smartphone. I contacted some usenet server admins and asked them if I could peer with them (one here on hn), so I set up an nntp server (inn2) and wrote a node/express/js app to read and post to the group.
I make zero money from it, but people liked it and started using it, and now i have about 100 users on the website. I made it mainly for myself as a hobby, but I like that some people like what I made.
Open-source projects like Hylang and Arch Linux that super satisfying when you contribute parts like code, packages or projects that supplements the ecosystem.
Working as a volunteer on one of the largest dataparties called The Gathering. Helping to create a creative environment for participants of all ages in the form of mentors that help you learn new skills in programming, digital paining and music. Lectures with interesting speakers, and workshops that gives you hands-on experience on a broad array of topics with experienced people.
This also turned into helping create events for IT students in Bergen where you can socialize with other students across colleges and program.
It's just great honestly. And i really love doing this kind of work.
I think making sure that the broadest/most diverse range of people have the digital skills they're going to need to create the best future for us all is really essential, too, and micro:bit is really starting to contribute to that.
Additionally, since we launched the foundation, being able to focus on the needs of our audience and building a sustainable organisation rather than something that looks glitzy and investible (we're a UK-based not-for-profit) also contributes a huge amount to the sense of fulfilment.
(We're going to be hiring a number of people over the next few months, so if you like the sound of that - https://micro-bit-educational-foundation.workable.com/ )
The work where I've been frustrated has tended to be in places where there are hard responsibility walls between what needs to be fixed and who's allowed to fix it - which is an especially big deal if you've been a student of project management for about 14 years but your "role" is a developer.
The dependencies for this was our phone lines, which were used to receive the "broadcast" from Jeep, our corporate WAN/LAN, a local Oracle database and a few other local servers. Our custom application had various processes built-in for emergency situations like losing connectivity, the database failing etc... Over the years, we had a few outages where the database was corrupted or our phone lines were down and it was a mess but we survived.
I wanted to learn programming and decided to write a Perl script that we could use to print labels and manually sequence parts with nothing but the "broadcast" file from Jeep. No WAN, LAN, phone lines, database or custom application required. Basically replacing a multi-million dollar system with a Perl script in case of a catastrophic failure that would likely never occur. This was not in my job description and definitely wasn't supported by corporate.
So, one day while we were in the middle of a problem with the database, unbeknownst to us, the local utility company was doing some work outside of our offices and severed our data lines with a backhoe. No WAN. No LAN because all traffic was routed through remote corporate servers. No "broadcast" from Jeep. And the Oracle database was still down.
We ran production for 17 hours using the first program I ever wrote, a floppy disk hand-delivered from Jeep containing the broadcast data, a Dell laptop and a single Zebra printer. This theoretically saved my company $10.2 million.
It is a simple, ugly (I'm not a good designer) website that showcase her products (dolls, purses, patchwork, etc), so she can show people.
She is 70+ years old and getting a lot of joy of her handcrafting, this helped her hobby even more important for her and added a lot to her general well-being.
It’s fun to have made something that so many people actually use and that I hope makes the world a little bit better. Plus I’m a completely self-taught programmer (my day job is content strategy) and it was rewarding to work on a bigger project than the little scripts/games/etc. I usually make for myself.
Now with the spreadsheet they not only have access to the data when/if they want it, it’s also super easy to roll back if something goes haywire.
Also, where did you get the data? Was it free?
Finally, I have to say some of the most rewarding personal experience has been working for extremely smart people. While working at a genetics lab I had the opportunity to learn from a pioneer in the sequencing field who got fed up with academia and was going capitalist. While working at an electrical motor company I got the oportunity to learn from one of the best devs I've ever known, a scala dude, and to learn from the what seemed to be the heir to the throne of the business and an extremely accomplished electrical engineer and scientist. I've also learned from and worked with some of the best warriors and leaders on the planet during my time in the Marine Corps.
I consider myself lucky.
A long time ago as a child I decided I knew not everyone was perfect, but you could learn to pickup a persons good habits and try to ignore their bad habits. Learning from the wisdom of other people is the most rewarding thing I can think of!
I started as an iOS dev 7 years ago, and on the job I've gotten back-end Java experience, learned everything I know about SQL, and gotten my hands dirty in firmware development, and learned a ton about EE in general. We design all our hardware in house, and between the 3D printers we use for building cases and housings, and my boss being an EE, we've done the cycle of:
Customer idea -> Prototype Board -> Firmware Development -> Customer Testing in the field
in under 3 weeks. It obviously comes with the occasional stress, but honestly when the alternative in my area is writing Insurance or Healthcare software, I'll take this any day. We're a mature company that has startup tendencies and a startup size. I'm not afraid to make mistakes, I'm not afraid to suggest new idea/technologies, and we're constantly evolving. We rarely say no (within reason), and we'll always give an idea a shot.
Maybe you need to find situation like mine? I know others exist, just dig into a niche, especially ones that are in an industry where others aren't using technology to the fullest potential.
I am currently working on a program that predicts Alzheimer's progression from the data of a standard EEG. I am quite sure that it will change the lives of many people. I still think wistfully about 2013 thou......
We have written this up here: https://medium.com/paratransit-pal/paratransit-pal-won-40-00...
Right now we are trying to find our niche and cater specifically to those who are left out of UI solutions that target the general user. But even if, like most projects, this does end up fizzling out, it has already done some good and not just been a dead end.
>The best bit about being a developer I've found is when working directly with the customer who is in some distress and the look on their face when you solve the problem and make their life easier, even if it was easy to solve. I'd love to find something where every day was like that!
AGREED!
I didn't really know how to do it at first, but I'd seen similar games had been ported to Android (Nethack, Angband) so I figured it was theoretically possible.
There was a lot of trial and error, and I learned a lot about the NDK in the process. Lots of interesting technical challenges. I remember the first time I successfully ran the binary - I'd replaced all the output calls with just logging calls to check that the compiled binary was running properly, so I could see the logs spelling out the title screen of the game. It was a real "It's alive!!" moment.
There were lots of other challenges involved in getting the display up and running efficiently, but once I had a decent application running I felt so accomplished. I felt like I could make just about anything, solve any problem, with software.
The app has about 6000 active users at the moment, and has been downloaded over 100 000 times. It's all open-source, of course. I update it every now and then to keep it up to date with the releases. I get the odd email thanking me for the port, requesting features, or even offering me money to thank me. I've accepted a couple of PRs as well.
It's not hugely popular and it's just a little game, but it's a little reminder of what I can accomplish if I put my mind to it.
Also, to my observation what has a huge impact on my statisfaction, is seeing what you made in the wild or just a recognition from colleagues/clients by saying "thank you for the good work".
https://github.com/o1lab/xmysql
This has been a fun project that I worked on last year. I started to learn backend but felt the process of creating rest apis can be improved. And I started to work on Xmysql. It is written in nodejs.
It was surprisingly simple to set up, cost basically nothing (github handle hosting & process, and like the concept).
Possibly helps people out :). Although it was built to fill the gap of the python.org job board that is now working, so we're not promoting it actively
Simple upgrades / techniques can really improve crisis response, mission comms, common operating picture, and real-time situational awareness for decisionmaking.
Helping larger organizations that perform these actions work in faster ways can also be painful as hell, but the end result is definitely rewarding.
You could do this for a non-profit to help with rescue efforts. However, Department of Defense activities and other first responder-type organizations are especially rewarding if you're closer to the mission end of things and you can see clear results. Defense Digital Service is doing some of this work I believe.
Outside of that, working in/with government to build software that help citizens and improves governance is a really excellent way to spend one's time and is quite rewarding.
If you are interested in making a similar switch, here are some resources:
* https://www.idealist.org/ * Look at career pages for any nonprofit listed here: https://www.ctosforgood.org/
(Disclaimer: I work at GlobalGiving.org, but we're not hiring. I'm just keen to get more talented people in the nonprofit sector! AMA!)
The last one I didn't even know about except someone mentioned to me they'd gone to the library and done a search and so I had a sneaky visit myself and saw it was the same old dog of a local network PHP website...
- [X] Away from typical enterprise development
- [X] Doing something worthwhile
- [X] Helping people solve problems
- [X] Their face when they solve their own problems
- [X] Make their life easier
Personal tutoring is hands-down the most rewarding job I have had. The job is free coffee, chatting with cool people about physics/maths/computing science and generally just having a good time. And they are seriously frickin' grateful for it, because for some weird reason their performance starts magically going through the roof.
The only major drawback is that at least where I know, there are no programs offering personal tutoring to the less fortunate, so you end up in a bunch of fancy families with pretty houses. Maybe not the people who need tutoring the most.
Mostly everyone else was doing old school CGI, one process per request, with the obvious cost and performance issues. Corba based, and antiquted looking now, but it was impressive back then.
We had our warts, but the revenue/cost ratio was crazy. It was nice to be a hero for a couple of years.
I've been lucky a few times over since then to be on interesting projects, but that was the last time I felt like I was on a world-leading team.
Big thanks to Netscape for NSAPI. Very prescient.
The lessons learned still apply today - machine level thinking, memory management, writing efficient code, etc. And it was the only time I actually had a mentor - actually, a bunch of them. Oh, and the best manager I've ever had. Smart people that were willing to give of their time. They understood that if you were going to build a product, you also have to build the people.
I say go for it when it comes to starting your own thing. It's hard, but it's rewarding.
The set of products were quite visionary and "ahead of their time". I came to see equivalent products years later when I moved to a global company, so that gave me a special feeling that, back then, I was working on something really futuristic, and that is in some way rewarding.
I worked from home, and it was just when my first kid was borne. Work-life balance was great, and I have no doubt it helped me stay motivated and productive.
I went there, and the people of security (my users), once they discovered why I was there, they got very very happy, their eyes were brightening, and started to make calls to their colleagues to tell the great news.
The feature I included on that version was very easy, did not took more than 2 hours to me to develop, but for them, it had a great value.
That day was the first time I remember that I was doing a meaningful work, literally my software was improving people lives.
When our customers (and prospective customers) saw the new products, they said things like, "Oh, thank God!" It was pretty rewarding, to say the least.
So, I spent 2 months repairing features, rebuilding a few, refactoring quite a bit and on launch day of my updates I received an email from an end user that said:
"You are the best and this is the smoothest it's ever been"
I printed that email and hung it above my whiteboard. Felt AWESOME.
I've always wanted to have a customizable tiling window manager for Windows, but the ones I found were outdated and did not cover all needs. I used to install GridMove the first thing on any new Windows installation, until it started failing me due to lack of HiDPI support.
I had some experience with WPF and XAML, which is a .NET's layout language. It is very flexible. Grids, lists, stacks, expandable containers, input driven animations, two-way data bindings - you name it. Also, many Windows-based desktop developers are already familiar with XAML. So it became the natural choice for my window manager's layout definition language. I just added grouping windows into tabs, and autostacking to the latest version.
The reason I mention it here is that I receive a lot of very positive feedback about it from various people. I've got some really inspiring mail (totally unexpected). One person even excused himself for not speaking my native language - so he could have expressed his happiness about the new superpower to tidy his desktop better.
We launched 6 months ago after 1 year in product development and I've been enjoying every bit of it. All the disciplince and sacrifices that it takes, gives me the feeling that finally my ambitions are being mapped by my actions of actually doing and building.
Every small success and every obstacle is welcomed and maximised.
It was a lot of hard work, and throughout the project I had felt that things weren't going to go well. The deadline for certain bits was pushed back, and I overheard some moans from one of the junior devs about how things were set up, but we persevered. After spending time with the client, I had the feeling that they had severely underestimated the amount of load they'd receive, so much of the architecture was built around clever caching, and reducing load on the API. I also wanted to keep things really basic, so that anyone could take over the project and build on top of it.
We made the final (hard) deadline, and the site went live. We went to London to meet the client on go-live day, and we sat there watching the usage stats, and initially thought that there was a mistake when we saw 5000 concurrent users on the site over lunch. They were getting millions of users a day, and IIRC the site was paid for after two weeks. There were some issues, and we got a bit scared when they said they had to set up a brand-new call centre to deal with website issues, but at that scale we discovered that this call centre was dealing with less than 0.1% of users, so everyone deemed the project a success.
It was a fairly typical project, but it was great to be able to lead a project from start to finish, and to have everyone happy. Most importantly, it was the first time I actually felt proud of my dev abilities. I could finally claim to have built something that loads of people use and rely on.
I had the opportunity to work with one of the government agencies, where I joined as a Lead Consultant and had to curve out the architecture, technology stacks, write boilerplate codes as platform, hired 2 Developers, work with the client to develop mockup, convert business into technical requirements, do hands-on development, make presentation to the clients for each iteration, rollout product, give training to end users and finally give credit to the team to have accomplished all these.
So, essentially it's like building a product but you will be doing all these while someone is paying you and without having to go through the financial stress. I have found this to be a great advantage over the startup.
I often envy the life of high end consulting hands-on architect who go to conferences for training, speaking, write Proof of Concept projects on new architectures/technologies, write books for various publishers and I am sure they must be earning more than any startup including equity!
Reasons: - more flexible work hours than industry - more flexible work topics, basically work on what you find interesting at the moment - it's nice to be surrounded by the young and curious rather than the business-savvy/practically-minded grown-ups of the world
Giving them the chance to think and develop ideas, based on my foundation is the most exciting and important thing to me. I can't wait to see what they do.
Working with developers is such a refreshing thing to do!
A small application built on headless Drupal with a React front-end that allows us to build pared down versions's of our College's websites to be used on touch screens at various events.
While not totally exciting it was my first opportunity in higher-ed to be able to lead my own project, build a React application from scratch using various tools like Webpack, Babel, PostCSS, etc.
My most fulfilling / rewarding job is my current. I'm the desktop client architect for Syncplicity. We do enterprise grade file synchronization.
In 2011, I went looking for a good alternative to Dropbox and I found the industry, as a whole, immature. I decided the only way I'd use such a product was if I worked on the product itself, this way I could personally fix the kinds of bugs that I anticipated such a product would have.
There were ups and downs, but life is never perfect. Overall, I genuinely enjoy working on the product, and the people I work with are great. I've been able to find new challenges within the role, both technical and social. Unlike when I ran a startup, I'm actually getting paid!
IMO, my advice is: find a kind of product that you want to use, but where the product space is very immature. Join a company (or start a company) where you can make a tangible impact on the product itself so that it suits your needs.
First in my internship in an investment company. I was working on a tool used by the traders, I had to work on the support and monitoring system, which was used by the technical support of the application. Since this system was low-priority, so I was the only one working on it while I was there. The few feature I developped, like reporting which user were connected, states of the servers and less lags in the reporting, were well-received and helped those who did the technical support.
In another company I also worked on a system to generate reports from Jira. The work I've done lowered the time necessary to generate a report (from 2h to 10 min) and added some information to the report.
Last it was for daily email notification, which were sent by hand, from an excel list, which contained dates & email adress which had to receive the mail that day. I wrote a small java program which opened the file, found the email adresses for that day, connected to the email server and sent the emails. Cut a daily task of a friend from 10 min to 30s.
But more importantly as time went on I got to rediscover my love of music and start a really cool community. Most of the people I meet on there tell me they have been looking for something like this for years and that because of JQBX they've been able to reconnect with some of their past music buddies. So that's pretty rewarding.
That being said I've tried starting some other fun projects that didn't flesh out- but it's always worth the experience IMO. So if I were you I'd ask "what do I really like" and then "how can I apply my knowledge to enter that space somehow" and then start hacking away. Goodluck w/ the new projects :)
I've never had a more enjoyable experience writing a program than that. There were no rules or good practices to follow. I didn't even know what most of the TI-BASIC commands did.
There was no version control, no documentation, no compiler, no wondering if I was using the appropriate framework, and no real goal in mind. It was, possibly, the only time I've ever played with a computer in the sense that a child plays with things.
I didn't write another program until I switched from an unrelated major to computer science during my second year of college and at first, some of that magic was still there.
It's now entirely gone. I'm not sure if I will ever enjoy programming a computer again. Luckily, I'm still young so there is time for me to do something else with my life.
Over the course of that time I held every position from "probie" to acting Fire Chief, responded to hundreds (maybe thousands, not sure) of calls ranging from motor vehicle accidents, to brush fires, structure fires, medical emergencies, and WAY too many false automatic alarm activations - plus an array of miscellaneous calls. I had the opportunity to become an NC Fire & Rescue Comission certified Instructor with qualifications to teach Firefighter I & II certification classes, LP Gas Firefighting, and Incident Command. I was almost killed (or at least badly injured) on a few occasions - once when the brakes went out on an engine I was driving while responding to a call, and a couple of near misses with flashovers while doing interior attacks.
There were some crazy adventures in there, some really good days, some not so good days, but I've always loved the fire service and I don't regret any of the time I spent doing that stuff, even though there was zero financial reward for it. And more importantly, I'd like to think we were able to help some people here and there. Out there, somewhere, is a family that is living in their home today, because of the job we did.
Years later I wrote a Quora answer that become my highest upvoted answer and eventually wound up being published on Forbes.com. Anybody interested in fire fighting and fire engines might find this interesting.
https://www.forbes.com/sites/quora/2012/08/15/what-do-all-th...
- a simple hack to connect two Slack teams, just to learn the Slack API, turned into my first solo project to go from ideation, MVP, scaling, pricing (oh god pricing is hard), marketing etc
- helping an education activist spread her new approach to kindergarten education. Not hard technically (built a static page website, a Discourse forum, and organized a few conferences). But judging by the educators' community feedback, it's the most useful I've been in my life per unit work
- joining an early stage startup as CTO, to provide great insurance coverage to freelancers. A project that is at a trifecta of great team, business opportunity, and real social impact to help the "future of work" go in the right direction
The first was my Ph.D. writing path planning algorithms for autonomous vehicles. We drove robots autonomously across an entire farm. We ran trials combining data from ground and aerial vehicles in real-time. I flew in a helicopter telling the pilot where to go based on instructions from a GUI I wrote that was receiving data from the ground vehicle running my path planning code, sending its data back up to me via a datagram I specified and a threading and networking library I designed. It was a great team of people, and the core group of five of us is still in touch and sporadically working together a decade later.
The second was the early years of my company, Cubescape, which makes Escape Rooms that run without a human game-master. I spent my thirtieth birthday crouched in a pile of dust debugging why a DMX controlled light wasn't properly flashing out a morse-code sequence, and why one particular Raspberry Pi would reboot after our strobe light kicked in. (Nope, not current draw - turns out if you hit the right chip with the right frequency of light, the photoelectric effect can cause a voltage drop. We covered it up with duct tape...) These days I've mostly automated myself out of a job so even though it's my baby, it's still less fulfilling than those early periods.
Everything else I've ever done in (work) life has been less fulfilling than these journeys, and it's really only through a recent period of deep introspection that I've managed to connect the dots and nail down those three key requirements. I'm now looking for what might be next, and using those as a filter on the opportunities - if you think your company fits, please reach out!
It was a lot of work, specially trying to use an accessible language (our target audience was students from 10yo onwards, although most enrolled people were college students from non-STEM areas), but it absolutely paid off.
The most rewarding part was receiving the feedback from students after the course's ending. They said things like "I can't believe I'm understanding this", and "Weeks ago, I never imagined that such a thing [IoT] even existed, and now I understand how it works".
So, for me, education is one of the most rewarding experiences.
¹http://codeiot.org.br. The course is in Portuguese, but versions with Spanish and English subtitles will be available in next semester.
Asking since I find some things I work on are very unfulfilling.
If you would like your work to provide fulfillment you should look for other job opportunities. No harm from that.
If it isn't necessary then find work opportunities that allow you more freedom, such as, flexible schedule or working remotely.
I’ll never go back to a less impactful job.
Personally: Working through a brutal custody battle that lasted for years and cost as much as a college education. Never wavered from what I thought was best for my kid, never attacked the other party, and ended up with an imperfect but fair agreement. Kid is doing great.
Going through something this difficult ended up being the major inflection point of my life.
We make apps to help people with depression and have our apps actively used by a small team in the biggest mental health care company in the Netherlands.
It is one of the most fulfilling place I have worked at because I get to meet actual patients and psychologists and get to know how much impact we have on their lives.
One of our patients messaged us one day saying how they would not be alive today had they not found the therapy with our application. I cannot express the feeling this brings in the team.
We are always looking for great tech talent for remote/on-site positions too BTW (specially React and React Native)
Developed an application assisting State Revenue Office customers to produce correct Pay-roll Annual Adjustment forms and thereby reducing the high rate of errors that SRO customers experienced in filling out these forms. I was responsible for the technical design and development of an MS-Windows (3.1x, Win95, WinNT) application with a "wizard-like" interface. The application was developed in Delphi to ensure reliability on thousands of different computers around the state and nationally. Diskettes were distributed to 16,000 SRO customers and 3,000 CPAs. The SRO received numerous letters of praise for providing a service that greatly simplified a complex process.
It's particularly hard to work in the real world where there is no undo button or source control. Ordering replacement parts takes a couple of days so all my screw ups have consequences beyond wasting my time.
The end result is a bit wobbly due to some design defects/inaccuracies in drilling, so now I need to figure out how to adapt it. Overall it's saved me about £500 over getting a real carpenter to build me something, and I'd say I've spent about a day on it total, so I'm probably breaking even overall.
https://github.com/SimulaVR/Simula
The development has been slow and winding, but the possibility of a successful outcome makes the work very fulfilling. In addition, the other people working on Simula are not only extremely smart, but very open-minded about all sorts of interesting technologies (functional programming, AR/VR, BCIs, etc). The project itself sits at the intersection of lots of things bleeding edge in open-source: Godot, Wayland, Haskell, etc.
[0] https://en.wikipedia.org/wiki/Core_Infrastructure_Initiative
It was different every lesson. The content was easy so I never had any confusion about what I was actually teaching. There was a lot of freedom to teach how I wanted, so I could be creative with what I taught. Also, the hours were short so I was always fresh when teaching.
I contrast this with teaching languages. Language teaching is a hard slog. There is so much more you need to know when it comes to speaking a second language. Progress is incredibly slow compared to math, and people often move backward. Lack of progress is demotivating to students and teachers alike.
The app has some fun social activity and itself is very rewarding to use. The app itself maybe simple and the social interaction and a focus community make it very fun to use.
Beside that, I was trusted by the founders and given time to do many experiment: I have implement some really cool stuff in Go/Elixir.
It also open my mind. I used to hate MongoDB but through repeatedly learning I discover MongoDB was a way different in 2011.
In the end, I think the freedom of technologies decision, trust, and see the work you do affect your close relative are very rewarding.
I'd love to pursue this hobby further but usually come home from my enterprise dev job feeling exhausted. I've considered getting a job in game development but it would likely result in a serious decrease in salary as well as a significant increase in time spent at work.
I have since built systems orders of magnitude more complex, but you always keep a special place in your first.
Besides that when I can write an R or Python script that automates a process for someone the look on their face is always amazing. What can take them half a day can then be accomplished in a minute or two...
The conversations are amazing, sometimes sad, but very motivating because it reinforces how broken hiring is and how much good could be done by helping engineers to better connect to one another.
Finding this mission was important for me because I had worked on purpose-driven teams in the past and I knew that's what made me happy. Best of luck finding yours!
For the simple incremental structure it has I got quite the engagement, with a thousand of players and an average session of 20minutes it was far beyond my expectations.
I also got back a ton of knowledge on the topic, which is nice.
In terms of what's most gratifying though, honestly, giving workshops or volunteering in a way that empowers others. I give workshops to trans and gender diverse individuals. I've volunteered with Technovation to get young women into tech. I've done one-on-one mentorship. That's the stuff that makes me feel better and none of that is paid work.
Got about two hours of sleep per night (admittedly caused in part by my refusal to skip the parties). Had to carry heavy equipment during the day, then suddenly write a major speech to defuse an ugly situation.
Complete mental and physical exhaustion. Great team. When we meet now, it feels like a Veteran's reunion. Everyone on that team has been looking for something comparable in their day jobs since.
IT-wise, I stopped contract work and built TravelMap. It's not going to save the world but I find it really fulfilling. https://travelmap.net/blog/travelmap-story
It did set my graduation back by a year since I was there full-time and didn't focus on my study program anymore. But now they don't operate in The Netherlands anymore, so I can go back to my studies and finish it.
The system integrated with all our third-party analytics platforms that could handle all of our reports with a client of a button. Went from 1-2 weeks to 1-2 seconds.
Now we keep adding more and more integrations, and even our competitors want to use it.
But the feeling of having modestly helped to save a few lifes, would score very high in the list. It plays in a different league.
For me, going to bed each night, knowing lifes have been saved, has been enough reward. That and the fact that my work is 100% remote - I am writing this with a scotch in front of me at a North African beach ;)
I have done some really really cool jobs, met amazing friends, made a bundle, lost a lot but the most rewarding project is and remains the partnership with my SO.
The positive feedback and joy I get back from the community, is really awesome :)
Also fiddeling with unknown file Formats and stuff, reveres engineering and re implementing defunct stuff is great fun :D
My current side-hustle is guiding kayak trips with local outfitters. I am looking forward to retiring into that.
In the grand scheme of things it doesn’t have many users, but it’s always nice to hear from someone when it makes their day a bit easier.
I make the technical decisions, she makes the sales decicisions and we both compromise on product with her with the final decision.
Playing music with my friends.
Building a home and relationships with my partners.
Building my body and mind through long term studies of various branches of philosophical and intellectual inquiry.
Caring for specific peoples' specific needs.
That all might sound hippy-dippy or unrealistic, but because of the history of our economy we tend to value only monetarily compensated public labor as "work", when in fact the domestic labor that recreates ourselves across time (like building homes and raising children) is far more intimate and important to our lives.
That is just my limited experience; I'm open to being wrong about that in other people.
And that's maybe a tough set of priorities if you're working 60 hours a week (including commute and the domestic labor that goes into maintaining yourself for the sole purposes of being able to do paid labor).
So, as I recognized that, I optimized my for-pay labor (I'm a web dev) into a 30-hour-a-week salaried 100% remote deal with a person who is a fantastic sales person. The work is fun and interesting, but more importantly it can be "just about the paycheck" because the meaningful work in my life gets enough time and attention for me to feel good about that work and see the results.
I dunno if that would work for other people, but it's been working well for me.
I've had a few people ask me lately why I've spent so much time long-term (an hour or two a day, for at least 2 years) studying philosophy. It's very difficult to convey the feeling you get when really approaching philiosophical thought in the way Descartes challenged via apple baskets:
> “Suppose [a person] had a basket full of apples and, being worried that some of the apples were rotten, wanted to take out the rotten ones to prevent the rot spreading. How would he proceed? Would he not begin by tipping the whole lot out of the basket? And would not the next step be to cast his eye over each apple in turn, and pick up and put back in the basket only those he saw to be sound, leaving the others? In just the same way, those who have never philosophized correctly have various opinions in their minds which they have begun to store up since childhood, and which they therefore have reason to believe may in many cases be false. They then attempt to separate the false beliefs from the others, so as to prevent their contaminating the rest and making the whole lot uncertain. Now the best way they can accomplish this is to reject all their beliefs together in one go, as if they were all uncertain and false. They can then go over each belief in turn and re-adopt only those which they recognize to be true and indubitable.” --René Descartes, Meditations on First Philosophy
I do enjoy providing a product that helps make users lives and businesses simpler. But everytime a new customer signs up, I chalk that up as more time for my family, more money for travel with them, more money for a retirement income, more money for our dream home. It's exciting!
I've found it difficult to even broach the subject of work-life balance or expected hours. The norm (50+ hours a week) is so unhealthy, and I hate that it's taboo to even discuss it. I'd gladly discuss lower expected hours and lower base pay.
Edit: I took a closer look and see the point now. It gives a more generic answer to a specific question. Such comments tend to be how discussions get less interesting, more because of the upvotes they attract than because the comment itself is bad.
Nevertheless the most inspiring project was a private project which I did with a friend some years ago. We thought about an Android App where people could post incidents (like terror attacks, fights or whatever) on an app and all the people around get a push notification as well as could see on a heatmap which areas have a high density of crimes. This was at a time where the "refugee crisis" started and there was a public attention in terms of terror attacks etc.
If you are interested, you can look at it here: * https://www.riskahead.net/ or directly on the google app store: * https://play.google.com/store/apps/details?id=org.deke.risk....
The project was not succesful but I learned A LOT. It was my first android app so I did not only learn to build an App from scratch on Android but also * Setting and maintaining a web-server with own hosted e-mail server * Implementing a rest-api with PHP and SLIM-framework * Running Apache and a MySQL-Server * Hosting and creating a web-site with WordPress, doing some SEO * Little bit or marketing (while not very succesful) * tons of more lessons learned
I finsihed my work, went home and started programming. Had a high workloard for around half a year but it was very inspirational and I learned a lot. Probably because I normally focus on a specific topic @work but for this project I had to do everything on my own (in terms of technical development and maintainance).
Would definetely do it again. But no good idea so far :-)