SoftwareDevelopment

Development

With over ten years of professional software experience in a variety of platforms, I can help you start or finish your software application. I can lead your team, augment your team, or be your team.

My software design is focused on long-term manageability. Code that is too clever, or overly complex, is difficult to hand-off and maintain. I think that writing code is the easy part; when you have to come back six months later and remember how it works, that's when your code quality is tested. Having simple, isolated, independent, and fully tested software components can make maintaining a large app much easier.

digital-strategy.jpeg
digital-marketing-consulting.jpg

Detailed Software Development Offerings

  • Mobile Applications: I’ve been building iOS applications a long time, and I have a solid application design that encourages code-reuse and isolation. I use a software design that goes way past "MVC" and "MVVM", it’s more closely related to the VIPER architecture, but even simpler, and much more familiar to traditional MVC design.

  • Websites: Even in this age of modern web applications like React and Angular, most sites are best served by classic web applications that serve HTML pages, easily created with Ruby on Rails, Django, Phoenix, etc.

  • API Servers: RESTful services, JSON-API, GraphQL, or maybe you need to migrate only some of your API to a high-performance server (aka the C10k problem), or just your classic REST-based servers with custom JSON responses. My preferred server platform is Elixir Phoenix, but I’m also comfortable in Ruby on Rails, Django, and Swift.

  • Performance: A quickly written Rails server sending JSON can easily bog down as your user base grows. I have experience migrating these servers to a more performant platform (like Elixir) or software design (e.g. using RabbitMQ workers to offload CPU intensive tasks).

  • Infrastructure: Maybe you’ve realized that hosting and deploying on a single server has become too brittle, and you want to move to Heroku’s container-based architecture - or vice-versa! I can look at your server needs and come up with a strategy to best host your site/application.

  • Database Design: If your database is bogged down with large data requests, maybe you need to add a Redis layer to your software. Or if your internal analytics data is growing out of control, or spread out over too many databases, we can add workers to aggregate, collate, and shrink sprawling data schemes.

  • Cloud-Based Servers: These days you don’t even need a server! Using a service like Amazon Lambda, or Google Cloud Functions, you can have all your services running on scalable cloud instances.

  • Dependency Management: If you just need to make sure that your code is kept up-to-date, I can audit your dependencies and make sure your code is not in danger of becoming stale.