HN user

cshipley

97 karma

Curtis owns salty dog technology a small freelance android/iOS consultancy. Contact me at: curtis [at] saltydogtechnology [dot] com

Posts11
Comments45
View on HN
AWS Private 5G 5 years ago

This isn't MVNO-aaS. Its Antenae-aaS.

I think a lot of people are missing this point. This will not allow someone to become their own carrier. It allows someone to install their own "cell towers" and have devices connect to them without having to use a 3rd party carrier.

SEEKING WORK :: REMOTE :: Portland, Oregon

I am the Salty Dog: a sturdy, weather beaten crew member who stands at the prow of your ship, guiding you safely through the rocks.

Full Stack Mobile Development, Design, Coding, QA, Back-end. Java, C#, Objective-C, Xamarin, C/C++, Azure, AWS. 20+ years experience, 7 years mobile development.

Achieve better outcomes through communication, risk management, and experience.

saltydogtechnology.com/blog https://www.linkedin.com/in/curtisshipleyandroidios/

SEEKING WORK :: REMOTE :: Portland, Oregon

I am the Salty Dog: a sturdy, weather beaten crew member who stands at the prow of your ship, guiding you safely through the rocks.

Full Stack Mobile Development, Design, Coding, QA, Back-end. Java, C#, Objective-C, Xamarin, C/C++, Azure, AWS. 20+ years experience, 7 years mobile development.

Better outcomes through communication, risk management, and experience.

saltydogtechnology.com/blog https://www.linkedin.com/in/curtisshipleyandroidios/

SEEKING WORK || REMOTE || Portland, Oregon

I am a Salty Dog: the sturdy, weather beaten crew member who stands at the prow of your ship, guiding you safely through the rocks.

Mobile Development, Design, QA. Back-end Architecture. Java, C#, Objective-C, Xamarin, C/C++, Azure. 20+ years experience, 7 years mobile development

saltydogtechnology.com/blog

Some work:

Kickback Points – Xamarin iOS/Android

Fas Rewards – Xamarin Android/iOS

Harts Gas and Food – Xamarin Android/iOS

Noco Energy Corp – Xamarin Android/iOS

Tone Tip – Used Fourier Transforms to detect audio codes embedded in audio broadcasts. Android/iOS/Xamarin

Garage 529 Android - https://play.google.com/store/apps/details?id=com.project529...

Nike + Running - Nike's premier running application. https://play.google.com/store/apps/details?id=com.nike.plusg...

Caller Dashboard – (Android Tablet, Android Phone, Ultrabook) http://tangorguild.com/caller-dashboard/

Ease into 5K Android - https://play.google.com/store/apps/details?id=com.runhelper....

Its ok to protect yourself when there is a conceivable threat.

But that's not the argument.

The argument is about if the policy put forth by Trump&Co make sense given the data. To ONLY part of the data for policy decisions makes no sense.

Consider this:

Immigrants and refugees commit crimes at lower rates than others. http://www.migrationpolicy.org/news/us-record-shows-refugees... https://www.cato.org/blog/immigration-crime-what-research-sa...

Comparatively, what is the threat of terrorism: http://www.businessinsider.com/death-risk-statistics-terrori...

I cannot speak to the vetting process for allowing refugees into European countries, however the current vetting process is a lengthy 1 1/2 - 2 year process. https://obamawhitehouse.archives.gov/blog/2015/11/20/infogra...

Do our policies make sense: https://www.theatlantic.com/international/archive/2017/01/tr...

Well here, talk to me. I protest the travel ban. I think it is racist. Not middle America, but the president and his strategist.

I think a lot of other people who are for the ban aren't racist, just misinformed. A lot seem to think Muslim immigrant|refugee == terrorist.

One person told me "I'm for the ban because I don't want them to come and kill me and my family in our sleep."

I blame this perception on the people who seek to profit by the general hysteria, not those manipulated by it. I am sad for the victims of it.

In what way do you mean "freelancer". There are multiple types of freelance jobs.

"Freelance" can mean:

1) Working remotely as a contractor though a 3rd party agency.

2) Working remotely hourly or per gig for yourself.

3) Doing end-to-end project work. Start with designs, code, test, and submit as a package deal.

All have different ways of finding clients. However, they tend to follow a career progression in that same order. My career path did.

I advise you to think about freelancing, not as a developer, but a business owner. Consider the following:

* What sort of business entity are you going to have? All have trade offs, and specific obligations from a pure business perspective. One piece of advice that my accountant gave me: Just because you create an LLC with your state govt doesn't make you an LLC. From a court's perspective you have to act like it. In my state that requires Articles of Organization, an Operation Agreement and at least yearly documented meetings with the stakeholders.

* Learn how to protect yourself legally. This means find a lawyer and get a standard contract. Have an attorney review any contract before you sign it. Figure out a strategy for when someone doesn't pay, and how this strategy may change if they are local or remote. It is much harder to take someone out of state to court. I have turned down gigs because we couldn't come to agreement on contract language. One contract asked me to pay all court fees in the event the software led to any issues for their clients. (It was for a medical device.)

* Think about how you are going to charge. Hourly/by the project. Clients may ask for fixed prices and not-to-exceeds. There are a lot of opinions about this. Make an informed decision about how you are going to approach this.

* How are you going to sell yourself. Most of my work comes through word-of-mouth. Figure out your pitch, and how you differentiate yourself from competition. Reputation counts for a lot. Think about setting networking/sales goals. Expect the engagement process to take a long time, and not all of it to pan out. I've spend many hours trying to engage a new client, only to have them change their mind at the last minute. Account for this in your pricing.

* Expect feast or famine. Sometimes you may be sweating bullets because you don't have enough work and bills are coming due. Sometimes you're sweating bullets because several clients are wanting things all at once. Sometimes you may be working nights and weekends.

* As a small guy, you are the product. It pays to be a high quality product.

I am 49 and have a CS Degree, ~25 years experience. I run my own mobile/web development company out of my home, making more money than I ever have before. I've been in business for about 3 years and each year my revenue increases by 20-30% I am principle architect and coder.

In order to do this, I have had to learn new languages, frameworks and new ways of thinking about things. Some of those "new" things weren't difficult, they just required tweaking old ways of looking at things.

For example, older mobile devices are resource constrained. Having to think about conservation while coding isn't new. I started my career coding on shitty MS Dos system where if you had 640K of memory, it was a high-end machine. The tweaking comes in with the addition of other constrains such as battery life, coalescing radio usage and the fact that the OS can decide to shut down your app and restart it at any time, but the user's expectation is it should be the way the just left it.

Continually learning and reinventing myself is just the way things are now. If you haven't had to deal with that yet, just wait. It will come.

SEEKING FREELANCER - Remote/Portland Oregon

Looking for Xamarin Forms and/or PHP/Laravel developer for occasional load-leveling. We're a small dev firm and sometimes needs help when things get too crazy.

Please reply to curtis [at] saltydogtechnology [dot] com.

It's actually a larger question than you perhaps realize. There are different kinds of freelancing. The spectrum ranges from something that looks like "remote" work to something more akin to agency-like project work.

That former is much easier. The latter pays better but requires a whole bunch of other skills, and takes much more time. The two aren't mutually exclusive however, and that is what I've done as part of my strategy.

There is a monthly find a freelancer thread on here where you might be able to find a gig. Work on building your portfolio/reputation. I'd suggest small projects at reduced rates.

Next, I'd visit a lawyer and get a template contract worked out. Rather than have him write one from scratch, find one that includes a lot of the things you want and have him tweak it. It will be cheaper that way. Most important (IMO) are indemnification, terms of payment, and arbitration.

Get used to promoting yourself. Have your short and long "elevator pitch" together. Put together a landing page and get some business cards. Talk.To.Everyone! You never know where and when your next client will come from.

One of the issues you will run into is the feast or famine issue. You never know when you will get your next client, you have to always be on the lookout and courting -- overloading the queue because a percentage will drop out. If you don't find the next soon enough, then famine. If, as it happens often, several prospects say yes, then you feast. By feast I mean work a lot of hours and save up so you can weather the next famine.

What are your skills? Do you have a portfolio? How about an up-to-date linked-in profile?

After 25 years in the industry, and been in the roles of senior engineer, lead engineer, manager, business owner. Here is my advice and thoughts.

Companies, divisions and teams are inherently social and political. Communication is very important. Understanding other people's perspectives, even if you disagree. Keep your emotions in check. Take the high road. Don't assume malice when incompetence is a sufficient explanation. Go out of your way to help other people. It builds good karma that will pay you back. Get to know other people in the company. Talk to them and show interest in them.

Perception is king. The only thing that matters is other people's perception of your you and your work. That said, the best way to increase people's perception you is to be a hard worker. Manage the visibility of what you're working on and look for visible things to do. When a department is being downsized, it's the people who are perceived to be of high value that are retained. Remember that you're being watched, even when you think you aren't. Don't look at porn at work. Don't be the last to arrive at work or the first to leave.

Knowledge should be your main goal at this point. Knowledge increases your value. Learn new technologies. Absorb as much as you can. Become the expert in niche technologies used by your team/company. It is your responsibility to make sure you understand what needs to be done. Don't expect someone to explain it to you. Make an educated guess about what are the relevant for next year and learn those. Code at home. Follow your interests.

SEEKING WORK - REMOTE - Portland Oregon

Experienced industry "Salty Dogs"! Kick-ass app development, lightening fast MVPs, cunning enhancements - other people's code doesn't scare us, QA - difficult bugs amuse us. Love to work with startups, consult on features, mitigating risk, lowering long-term cost. Multi-platform solutions -- don't build it twice.

We eat: iOS, Android, Xamarin, Parse.com, Sqlite, REST, NDK, C/C++, C#, Java, Obj-C

Battlefield:

Kickback Points iPhone and iPad https://itunes.apple.com/us/app/kickback-points/id528848853?...

Garage 529 Android - Project 529 Anti bike theft app. https://play.google.com/store/apps/details?id=com.project529...

Nike + Running - Nike's premier running application. https://play.google.com/store/apps/details?id=com.nike.plusg...

Economist Pocket World in Figures iOS App – https://itunes.apple.com/us/app/economist-world-in-figures/i...

Caller Dashboard – (Android Tablet, Android Phone, Ultrabook) link: http://www.thugdesign.com/projects

Ease into 5K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Bridge to 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Ease into 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

email at curtis [at] saltydogtechnology [dot] com -- right now! ;-)

SEEKING WORK - REMOTE - Freelance Android and iOS, Portland Oregon

We have experience with creating MVPs, full apps, enhancements, testing and maintenance/bug fixing.

About us: A small freelance shop, with over 20 years industry experience from design, development, architecture, QA and product support.

We have experience with:

  * App Design/User Experience

  * MVP

  * Cross platform applications

  * Java

  * Objective-C

  * C#/Xamarin

  * Baas's such as Parse.com, Kinvey or PubNub
Portfolio:

Garage 529 Android - Project 529 Anti bike theft app. https://play.google.com/store/apps/details?id=com.project529...

Nike + Running - Nike's premier running application. https://play.google.com/store/apps/details?id=com.nike.plusg...

Nike + Vertical -- Mobile/Google Glass prototype for hands-free help with rock-climbing.

Economist Pocket World in Figures iOS App – https://itunes.apple.com/us/app/economist-world-in-figures/i...

Caller Dashboard – (Android Tablet, Android Phone, Ultrabook) link: http://www.thugdesign.com/projects

Ease into 5K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Bridge to 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Ease into 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Walk There iOS App – Live walking tour application. Article: http://blog.oregonlive.com/my-portland/2011/09/metro_and_kai....

email at curtis [at] saltydogtechnology dot com

I have implemented application for clients using xamarin and have been pleased. Portions of the code can truly be written once, compiled once and bundled into iOS or Android, using portable class libraries. Xamarin can call into native code on either platform, as well as has support for opengl.

That said, I don't think you could write cross platform opengl code unless there was an abstraction. However, there is a framework called monogame, which depending on what you're trying to do, may be useful. See http://www.monogame.net/showcase/

I keep a lot of business logic and networking code in shared modules, then have the UI be very thin. These shared pieces can be tested on a desktop system. The biggest negative about Xamarin is it feels like they push some things out the door too soon, without sufficient quality or documentation.

If you have any questions, feel free to shoot me an email at curtis [at] saltydogtechnology [dot] com.

Thanks for your reply. I hear what you're saying about hourly, and completely agree with your points -- if it is hourly without structure.

The difference is I treat each milestone/iteration as a small project, requiring assesment, scoping and client buy-off (A change order to the contract, along with an estimate). If they want time limits before continuing past x number hours, I'm fine with that too.

I see the advantages are:

* Lower risk to me because the price is not fixed

* Lower customer risk because they see progress and can adjust as the project unfolds.

* Lower cost to them -- they don't pay extra to cover my risk.

* The client has more control since they can make course corrections along the way.

* Regular client touch-points are built in - they get more visibility, I can adjust expectations

* Scope changes just mean more billable hours

The feedback I've gotten is they like the flexibility, and are often more willing to say yes because of reduced risk.

A great place to start is posting something on the find a freelancer thread here on HN every first of the month. I get a fair number of inquiries from that.

As others have mentioned, meeting people and letting them know what you do. Most of these will not be direct clients. Rather they will either know of someone who is seeking help, or will remember your name.

It can take some time to get your name out and get the ball rolling. When I started up again, it took about two months. When you talk to someone, you never know how long it will take to turn into something. I have had conversations with clients that took 6 months to come to fruition. Others in just a week. The moral of that story is to always be looking, not just when you need work. Get in the habit of always saying yes, and then just manage your availability.

There is a spectrum of the kind of work you can do. I don't mean which language/platform. I mean straight staff augmentation to managing projects. It is easier to find the staff augmentation gigs. These are easier since someone will just be telling you what to work on, and you do it. You will make less for these and this sort of work doesn't scale as well. I would only ever do this for straight a straight hourly rate.

Managing projects doesn't mean you will (necessarily) be managing people, just managing the project. With this, someone needs something built, but may not know how. It requires an additional skill set of knowing a bit of sales, knowing how to set/re-set expectations and how to negotiate. You can get a much higher rate for this, and it is possible to scale this a bit better because you can sub out some of the work.

Another thing you will run into very quickly is how to structure the relationship. There are people out there who are incompetent and others who are nefarious. It is important to know how to protect yourself legally and practically for both. For the legal aspect, find a local attorney who can look over contracts and help you craft a reusable template. Always have an attorney look over contracts before you sign. Most of the time someone gives you a contract to sign, it will be written to be in their best interests. Other times, they will just be poorly written.

For the practical aspect, understand there is a difference between working with someone in-state, out-of-state and out of country. You have the most legal recourse with someone in-state. If they are out-of-state, you may have to go there to pursue any legal action. (which is a massive pain) If they are out of country you may not have any legal recourse. So you will want to structure the business relationship to protect yourself, which might be as simple as half of the estimate up-front. The remainder on completion, and they get no code until it is complete.

A lot of times I structure it by milestone or iteration, with time limits, requiring permission to continue, but all billed hourly. Each iteration or milestone delivers something tangible. They get code on payment. This way I get paid for the work I do, and they won't get unexpected costs and they always have a pretty good idea where things are. Risk is mitigated in both directions. At any point, they can decide to pull the plug and they still have something for what they've paid so far.

It is not uncommon for potential clients to ask for fixed-bids. My advice is to steer away from them. They require you to be able to make good estimates then inflate them to cover your risk. That risk is all on you. They also require you to have tight definitions and manage scope changes mercilessly. If you don't, then you eat it. That said, some people like them because they're really easy.

Some other pieces of advice:

* You're not dedicated to a particular project until either they've given you a deposit, or something is set up legally so that if you start working, you'll get paid.

* Generally ask for a deposit from new clients.

* It is ok to drop bad clients. Sometimes they're not worth the trouble.

* Think about it in terms of collecting/building long term relationships rather than "work". Once you get an established base of good clients, the work will tend to come to you.

* Remember, you're not their friend and not their employee. You are in it because it is a business relationship that has mutual benefit.

* Keep good records of time, expenses and income.

Email me at curtis [at] saltydogtechnology [dot] com if you have more questions. What sort of work are you looking for?

SEEKING WORK - REMOTE - Freelance Android and iOS, Portland Oregon

We have experience with creating MVPs, full apps, enhancements, testing and maintenance/bug fixing.

About us: We are a small freelance shop, with over 20 years industry experience from design, development, architecture, QA and product support.

We have experience with:

  * App Design/User Experience

  * Cross platform

  * Java

  * Objective-C

  * C#/Xamarin

  * Parse.com

Portfolio:

Garage 529 Android - Anti bike theft registration app. https://play.google.com/store/apps/details?id=com.project529...

Nike + Running - Nike's premier running application. https://play.google.com/store/apps/details?id=com.nike.plusg...

Nike + Vertical -- Mobile/Google Glass prototype for hands-free help with rock-climbing.

Economist Pocket World in Figures iOS App – https://itunes.apple.com/us/app/economist-world-in-figures/i...

Caller Dashboard – (Android Tablet, Android Phone, Ultrabook) link: http://www.thugdesign.com/projects

Vapp (Veteran's Application) Android – https://play.google.com/store/apps/details?id=com.omf.vapp

Ease into 5K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Bridge to 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Ease into 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Walk There iOS App – Live walking tour application. Article: http://blog.oregonlive.com/my-portland/2011/09/metro_and_kai...

email at curtis [at] saltydogtechnology dot com

Senior devs learn a better tolerance for ambiguity, and have better ability to see the big picture in both the problem space as well as the solution space.

I encourage that sort of thinking from devs I'm mentoring.

I do this by giving creating a rapport where they feel comfortable asking questions. I do by having an attitude that part of my role is to help them be more effective. When asked a question, I drop everything to help them.

I then specifically give them problems that force them to ask questions. This in turn gives me the opportunity push the envelope with their thinking by asking them to answer their own questions.

So when I get asked a question on how to do something, I will ask them if they understand the goals and constraints we need to work in. I make sure they understand that first. Then I ask them for different ways of solving their problem, the pros and cons of each and ultimately what their recommendation is considering those goals and constraints. By that time they generally end up with the "right" answer, and sometimes something I wouldn't have thought of. What I am doing with that exercise is guiding them through the process of how to think about solving the problem. Soon when they come to me, they are already giving me options, pros and cons with a recommendation.

Sometimes I'm asked to decide about a difference of opinion between two devs. Making sure both have the same view of the goals and constraints is really important and most of the time aligning these solves the dispute. If not, then I will have one or both create a minimal test/prototype, time-boxed, that explores the problem. Then we evaluate the results together against the goals and constraints.

This has worked very well for me.

As far as breaking up tasks and delegating, it all depends on their tolerance for ambiguity. I usually start more junior devs with smaller, well defined tasks that have specific acceptance criteria. I adjust the level of definition based on their ability to succeed, but always do it in such a way that it forces them to grow.

SEEKING WORK - REMOTE - Freelance Android and iOS, Portland Oregon

Over 20 years industry experience from design, development, architecture, QA and product support. Front-end and back-end development. Java, C#, Objective-C, Xamarin, C/C++, Parse.com, UX

Portfolio:

Garage 529 Android - J Allard's company (xbox 360) Anti bike theft app.

Nike + Running - Nike's premier running application. https://play.google.com/store/apps/details?id=com.nike.plusg...

Nike + Vertical -- Mobile/Google Glass prototype for hands-free help with rock-climbing.

Economist Pocket World in Figures iOS App – https://itunes.apple.com/us/app/economist-world-in-figures/i...

Caller Dashboard – (Android Tablet, Android Phone, Ultrabook) link: http://www.thugdesign.com/projects

Vapp (Veteran's Application) Android – https://play.google.com/store/apps/details?id=com.omf.vapp

Ease into 5K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Bridge to 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Ease into 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Walk There iOS App – Live walking tour application. Article: http://blog.oregonlive.com/my-portland/2011/09/metro_and_kai...

email at csgatekeeper [at] gmail dot com

SEEKING WORK - REMOTE - Freelance Android and iOS, Portland Oregon

Over 20 years industry experience from design, development, architecture, QA and product support. Front-end and back-end development. Java, C#, Objective-C, Xamarin, PHP, MySQL, C/C++

Portfolio:

Garage 529 Android - J Allard's company (xbox 360) Anti bike theft app.

Nike + Running - Nike's premier running application. https://play.google.com/store/apps/details?id=com.nike.plusg....

Nike + Vertical -- Mobile/Google Glass prototype for hands-free help with rock-climbing.

Economist Pocket World in Figures iOS App – https://itunes.apple.com/gb/app/the-economist-world-in-figur....

Caller Dashboard – (Android Tablet, Android Phone, Ultrabook) link: http://www.thugdesign.com/projects

Vapp (Veteran's Application) Android – https://play.google.com/store/apps/details?id=com.omf.vapp

Ease into 5K Android – https://play.google.com/store/apps/details?id=com.runhelper.....

Bridge to 10K Android – https://play.google.com/store/apps/details?id=com.runhelper.....

Ease into 10K Android – https://play.google.com/store/apps/details?id=com.runhelper.....

Walk There iOS App – Live walking tour application. Article: http://blog.oregonlive.com/my-portland/2011/09/metro_and_kai....

Fridge Art iOS – Social picture sharing app using refrigerator metaphor. Unpublished

Life Sampler Android – Student data collection application.

SEEKING WORK - Freelance mobile developer (Android and iOS) Portland Oregon/Remote

I have over 20 years industry experience from design, development, architecture, QA and product support. Front-end and back-end development. Java, C#, Objective-C, Xamarin, PHP, MySQL, C/C++

Portfolio

Nike + Running -- Nike's premier running application. https://play.google.com/store/apps/details?id=com.nike.plusg...

Vapp (Veteran's Appliction) Android – https://play.google.com/store/apps/details?id=com.omf.vapp

Ease into 5K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Bridge to 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Ease into 10K Android – https://play.google.com/store/apps/details?id=com.runhelper....

Walk There iOS App – Live walking tour application. Article: http://blog.oregonlive.com/my-portland/2011/09/metro_and_kai...

Economist Pocket World in Figures iOS App – https://itunes.apple.com/gb/app/the-economist-world-in-figur...

Caller Dashboard – (Android Tablet, Android Phone, Ultrabook) link: http://www.thugdesign.com/projects

Nike + Vertical -- Mobile/Google Glass prototype for hands-free help with rock-climbing.

Fridge Art iOS – Social picture sharing app using refrigerator metaphor. Unpublished

Life Sampler Android – Data collection application.

The old de-facto formula was to estimate the number of hours then multiply times two.

Basically, break it into pieces. Usually individual pages and estimate each based on prior experience. Add to it other things you may need to do like designing a schema, interfacing with other APIs, etc. This will probably give you your best case scenario. Then multiply times two because stuff always comes up that you didn't think about. This is what I use for "ballpark" estimates.

This is definately open to optimization.

I think it is important to understand "both sides". Clients usually like fixed-bid or per project pricing because it limits their risk. That way they won't be surprised by a huge bill.

As a freelance developer, I disklike fixed bids because it requires me to manage scope really carefully, otherwise my effective rate falls really quickly. So this really means that I need to increase my bid by some amount (I do 25%) do limit my exposure. So this isn't quite as good for the client as it might look on the surface.

A better way to do it is a lesser rate, such as hourly or weekly, and then break the work into iterations or phases, each resulting in something demonstrable so they can see what they are getting for their money. After they pay for the phase, they can walk with the source code written so far if they want. This limits risk on both sides. I've gotten paid for what I've done so far, and they have something tangible for what they've paid so far.

I start out with prototypes/proofs of concept to explore the most risky aspects of the application first and then feed what I find back into the estimate. This way, I can the client can know sooner than later about gotchas that can affect schedule or cost.

SEEKING WORK - Freelance mobile developer (Android and iOS) Portland Oregon/Remote

I have over 20 years industry experience from design, development, architecture, QA and product support. Front-end and back-end development. Java, C#, Objective-C, Xamarin, PHP, MySQL, C/C++

Portfolio

Nike + Running -- Nike's premier running application. Social, client-server, 30+ screens. Java/Android

   https://play.google.com/store/apps/details?id=com.nike.plusgps&hl=en
Nike + Vertical -- Mobile/Google Glass prototype for hands-free help with rock-climbing.

Caller Dashboard – Developer/ Android Architect. Caller id on steroids. Multi platform communication portal for mobile phone. Notifies base station of incoming phone calls and other information about the contact. Android Tablet, Android Phone, Ultrabook C#/WPF, Java/Android, Intel CCF, IMAP.

Fridge Art iOS – Developer. Social picture sharing app using refrigerator metaphor. Allows someone to share a “virtual refrigerator door” with other people. Any photos posted to fridge owner's door, automatically shows up on shares. C#/Xamarin. Unpublished

Fridge Art Server – Developer. The web-service server for the Fridge-art project. Provides api's to add, view, delete, modify virtual refrigerators and art. PHP/Kohana/Mysql Unpublished

Vapp (Veteran's Appliction) Android – Developer. Mobile component for a web portal for veterans. Provides a mobile searching platform, messaging, cloud file storage, veteran community access, and resources. Java/Android, REST, JSON.

Life Sampler Android – Developer. Automatic student questionnaire application. Queries students at scheduled times during the day, syncs results via ssh. Java/Android.

East into 5K Android – Developer. Added GPS capabilities, media player integration, in app purchasing. Java/Android

Walk There iOS App – Developer. Live walking tour application. Provides visual and audio information as the user goes on walking tours around the Portland metro area. Added enhancements. Objective C/iOS.

Economist Pocket World in Figures iOS App– Lead Engineer/Developer. 20+ screen application. Scoped effort, created engineering bids/schedule, created architecture, and implemented product. Pocket World in Figures application provides easily navigable access to the data in The Economist’s Pocket World in Figures book. Objective-C/iOS/SqlLite.

Android social picture puzzle – Lead developer/architect. Application uses any picture, and creates a puzzle that can be sent to other mobile applications or email addresses. Scramble-puzzles stored on website. Java/Android/SqlLite. C#/mono/Asp.net, Linq to MySql, MySql, REST/Json

I've coded for google glass, and I don't think our internet usage will go via wearable things -- at least not ones like glass.

Information displayed needs to be understandable at a glance and relevant to the very here and now. Usable real estate is extremely limited in glass and interaction is limited to voice, simple gestures against the right frame, and GPS/accelerometer. So doing interaction with any amount of complexity gets frustrating and annoying very quickly.

I'm not quite sure I understand his objections to Xamarin. He says, "It can only output to intermediate Xamarin libraries, not native ones."

On iOS Xamarin does compile down to native code and on Android is compiled to dex format. They are not interpreted on those platforms.

Xamarin can utilize PCL assemblies, so non-ui code could be written once and used multiple places without recompilation. This is actually very handy since those libraries can be built on Windows, where the toolchain is better (IMO VS is better than XS) and the system is more powerful.