Last week I had an interview with a healthcare software business owner, he told me that their application is built almost entirely with php
and without any frameworks and most of the business logic is in the MySQL stored procedures. The system works ok, but the problem is
that the code is hard to mantain, modify and to get developers to work on it. He is looking for a person who can solve this problems,
refactoring or porting it to another more "developer friendly" ecosystem.<p>I'm a programmer with most of my experience related to web technologies(Python/Django) but recently using machine learning algorithms in personal projects. This guy offered me(by email) a salary of $X after the interview, but being not ok with the offer I wrote him that
the value I considered could bring to the business wasn't matching his offer. He replied that he was interested in having another meeting to
discuss it.<p>So before the meeting I reach you fellow HNers for some help. I was thinking about which things, besides code refactoring, could be offered in order to increase the expected value. Some things I thought about:<p>- About the refactoring: Create a well documented Rest API to improve maintanability, reduce code repetition, use the most suitable programming
language. The creation of an API will also allow to add new functionality in a cleaner way, so it could be possible to build, for example, a mobile app for appointments allocation.<p>- Use ML to predict something of value. I'm not experienced in the healthcare domain but I think there are a lot of possibilities(do you know any?). Maybe use ML to predict the amount of patients to attend in a given day.<p>- The company site is old, my idea is to build a new one, start a blog talking about related topics and then open source non-core apps that could be useful for other people.
You are in a strong position as you have the offer.<p>How well you do will depend on their budget, politics, attitude as much as how good you are.<p>I would suggest framing everything in terms of business benefit and the benefit to the person making the decision. Pretend you are them and imagine what they are looking for.<p>The refactoring stuff looks good. So you could frame that as "You are getting a lot of bugs reported every day, which must be frustrating. I bet you'd rather be making progress the more important things in your job. I will fix those bugs quickly. I can deal directly with the support department if required. At the same time I will work to make the codebase better to reduce the bugs in the future by at least an order of magnitude. I will do this by ..."<p>Now this guy will personally want to fight to get you in at the higher salary because you are going to make his life easier.<p>Another way to look at this is how the employer thinks about roles. If you can sell yourself as a senior developer or architect or team leader rather than just a developer, then show comparable market rates, this will help.<p>But you need to figure out what is making them tick.
Before the meeting, give some thought on how your potential employer (in this case healthcare software business owner) would perceive Cost Benefit Analysis when he hires you. He is not just looking to solve problems with the code and to port it to another more developer friendly ecosystem (although this sure will help in the long run), but what benefit / overall value he gets. You sure gotta add more value to the table. Try to analyze how much can he sustain / afford (in terms of time) to port the code to another developer friendly ecosystem. Or is his main priority is to add more features to the software product (If this is the case)? Because porting the code to another framework / language is more of an expense, while on the other hand adding more features / enhancing his product is more sort of a value addition. So, give some thoughts on this, try to figure out his main priorities and discuss with him in meeting discuss how you can bring more value to the business.
Point of discussion for your meeting: fixing this problem now is more cost effective than letting the app rot while his user base grows (compounding the problem). One way to ensure a quality refactoring is to do a couple tasks (ML and redesign) which both demonstrate power of the new architecture and also let you and he verify it. You could also sell some integration tests and site monitoring.