LunarLincolnLunarLincolnLunarLincolnLunarLincoln
  • Home
  • Process
  • Services
  • Work
  • Writing
  • About
  • Contact
  • Home
  • Process
  • Services
  • Work
  • Writing
  • About
  • Contact
Feb
24

2016 State of the Union

  • Posted By : Jennifer Bennett/
  • 0 comments /
  • Under : Business
CLIENTS, CREW MEMBERS, FRIENDS, FAMILY, AND FELLOW AMERICANS: WELCOME TO LUNARLINCOLN’S STATE OF THE UNION ADDRESS (2016 edition).

If year one was a quiet tiny team of two, and year two was a crazy rollercoaster of growth, year three was a lot of figuring out the finer points of business and moving onward and upward. What comes after the giant hurdles? The answer is hundreds of tiny hurdles. (And overcoming those tiny hurdles is surprisingly painful – similar to stomping on Lego’s in the dark – who knew?). But now that we’ve stomped all those hurdles and arrived here at 2017, I have to admit looking around that we did a pretty awesome job. We built so many new things this year, in so many different areas. We got smarter, we got stronger, and we even made a teeny bit of money in the process.

 

But I digress, let’s get down to our favorite thing every. single. year. The Work!

The Work

We added several new and diverse clients: Bkon, Camping with Dogs, GoNoodle, HealthHere, Lasso, TReAD Lab, Pacecoach, Oak Hill School, Revl, Subpac, Synchronous Health, Tandum, and VDCI …whew I think that’s it. (Totally didn’t realize it was this many clients, holy crap you guys!)

With these guys (and gals) we got to work on all sorts of new things:

  • ResearchKit apps (tap for that dopamine..keep tapping…keep tapping)
  • Conversational Bots (hello Karla)
  • iBeacons and the Physical Web (beer + beacons!)
  • Customizable characters (my favorite is the cheeto fingers one)
  • Video streaming (Peanut Butter in a Cup loudly for the whole office while testing)
  • Instagram puppies (who have adventures in the great outdoors)
  • Designing naked medical bodies
  • Interfaces for running to your favorite jamz (personal running tune preference: Weird Al)
  • Ticketing, Tune Controls, and Tracking your Videos
  • Making doctor’s visits pleasant (and efficient!)

Some have shipped and are available for your pocket computer right now. Some were featured and reached #1 app in Apple’s App Store. Some were used at events with tens of thousands of attendees. Some helped people do their jobs better than ever before. Some help you get out there and get moving.  Some are still in progress. Some we haven’t even mentioned above because they are too cool and top secret to be hinted at as of yet. We’ve added many of them to our Work page with greater detail, along with our amazing clients saying amazing things about yours truly. Check it out!

The Team

You can’t do the work without the team, and we’ve assembled a stellar team….I would almost say they are rockstar developers…but I won’t because that terminology is stupid. They’re really, really good. We wouldn’t have it any other way.

This year, we had our first interns (MLK class of 15) and we welcomed Cory Wilhite to the crew. There were many Friday lunches, a single ice cream truck quest (found it after weeks of hearing it!), several arguments over code abstraction, and as always: general hijinks.

 

The Community

We wouldn’t be here without the love and support of the Nashville community, be it developer or mobile dev aficionados. This year we put our money where our mouth was and sponsored several events. Some of which we spoke at and some of which we merely cheerleaded from the audience. Each of these events and groups are great examples of creativity and innovation that is flourishing in Nashville.

  • DevFest Nashville
    • Intro to Android
    • Native versus Hybrid Development
  • MTSU ACM
  • Global Game Jam
  • Creative Mornings
  • Startup Southerner
  • Nashville Mobile Developer Usergroup Cagematch
  • Nashville Cocoaheads
    • Thinking Functionally in Swift
    • An Apple a Day: Developing HealthKit Apps
    • Continuous Deployment for iOS

The Future

So what’s next? Definitely more of the same and hopefully more of better things.  In the meantime we’ll keep building, keep coding, keep working with the community, and we’ll keep checking back with you as the year progresses.

Here’s to LunarLincoln in 2017!

Love and gratitude,

Jennifer, Wiley, Travis, Patrick, and Cory

 

 


Jan
05

Becoming A Mobile Developer

  • Posted By : Cory Wilhite/
  • 0 comments /
  • Under : Coding

[message_box type=”info”] This week we have a guest post from new-ish LunarLincoln crew member Cory Wilhite. Enjoy! [/message_box]

Today there are a million ways to get started as a developer. From traditional routes like classes in high school and college to newer paths like coding bootcamps and self-taught routes through online courses, the resources are readily available to get into the world of programming. While we’ll go over the many different ways to learn about software development, we’ll also dive into why you might like being a developer.

Motivations

Technology is infiltrating every facet of our lives. With the phones we carry around, the computers we use, and now where even lightbulbs and refrigerators are computers, programming and computer science is the common thread that helps in understanding how the world around us works. Whether you’re interested in designing websites, mobile applications, building new uses for hardware, or even building tools for other developers there is something out there that needs creating. At the core of the many environments and concepts that involve programming is the common thread of logic, problem solving, and the desire to continuously learn new things. One of the more satisfying daily elements of programming is to find solutions for problems that you previously knew very little about.

solution

 

Whatever your motivations are, its important to know what steps you can take to either get started or further your education as a developer.

Traditional Paths

Up until a few years ago, the most straight forward way to start down the path to being a developer was found in academia. A computer science degree at college, and even earlier with AP computer science classes at high school. These programs focus on everything between the fundamentals of programming languages, the most optimal way to write software, and what makes a computer function. While often not being directed towards working with any specific technology or language, a computer science program will give you a broad understanding of the ways to write software and how to conduct research on deeper computer science concepts.

Self Taught Paths

There are several ways in recent years to learn programming through websites and online resources. One of the first websites to start online interactive learning was Codecademy. They provided free tutorials that a student could follow along with by actually completing code challenges in the browser all while learning that specific language or technology.

This concept of online interactive learning has been expanded on by several companies (e.g. Treehouse, CodeSchool, etc.) which also provide in-depth videos and quizzes to go along with the interactive coding exercises. A commonality between the online coding resources is that they make themselves accessible by focusing in on a language or technology that you might want to learn.

If a traditional computer science program is a broad stroke of knowledge about computing and software, these online courses are precise dives into a specific topic. They can be great as an introduction to programming because they give you the ability to get hands on and complete projects right out of the gate. On the topic of motivation, the feedback of being able to see your work in working product is a great motivator. Each day there are more and more resources to take advantage of online.

Bootcamps

With the introduction and success of online learning resources, there is a new type of learning resource that could be classified as being in between self-taught courses and a computer science degree. 3 to 6 month bootcamps have been cropping up (Iron Yard, DevMountain, etc.) that offer crash courses in different paths within the software development industry. These paths are more directly focused on the common career paths such as web developer (back-end and front-end), mobile developer, and even offering courses in becoming a user-interface/user-experience (UI/UX) designer. Where websites like Codecademy will dedicate a course towards one language like Ruby or Javascript, these bootcamps will base their paths on diving into the technologies and tools used currently in the industry for a specific career path.

How I got started

For myself, I took a mix of traditional and self-taught education. In high school, I took advantage of a web development class when I was first starting to get interested in programming. This lead me to further that learning with AP computer science. One of the important motivators in those classes was that they each left me with something tangible and just enough knowledge to be dangerous.

In my web development class, the final project was open ended and I took advantage of that by learning how to build a flash website. In AP computer science, our final project was to build Pong in Java. I ended up going to college for Audio Engineering Technology, but I decided to make my minor computer science because of those classes in high school and the interest I had in computers and programming. In between high school and college for me, Codecademy was just launching. I took full advantage of the free courses they provided at the time to learn Javascript and Ruby. I also utilized another company that was just launching called Coursera that featured real semester long college courses for free. I took classes that interested me (like Digital Signal Processing, Calculus, Game Theory) along side the education I was receiving at the college I went to.

It was a desire to keep learning and building on the knowledge picked up in traditional classes that had me pursuing further education on my own. Even after getting a job as a developer you never stop learning new things. Learning from other developers on websites like StackOverflow or following high profile developers blog posts to see what new techniques they’re experimenting with or problems they’re overcoming provide a deep community of knowledge and is something that I think separates the programming industry from every other industry out there.

If you’re thinking about going down the path to being a developer, find something you’re interested in and get started right away! Even if it stays as a hobby, theres always something to learn.


Jul
26

Shipping Your First App

  • Posted By : Dheeraj Namburu/
  • 0 comments /
  • Under : App Advice, Business

[message_box type=”info”] This week we have a guest post from LunarLincoln Intern Dheeraj Namburu. He spent last month working on his very first app project and we wanted him to give us a breakdown of his initial foray into development and his take on our product-process. Enjoy! [/message_box]

Coming up with a good app idea is hard: it needs to be unique, useful, and attractive enough to attract a paid user. Hitting all of these criteria is essential in developing a successful app as I’ve learned these past few weeks. My first app ”The IFJ Reader” was a tool to make reading Intercollegiate Finance Journal articles much easier on an iPhone. The important distinction with my app is that I wasn’t seeking a profit, I wanted it to be a learning guide so that I could move on to other projects.

The best way to start the ideation process is to come up with as many ideas as possible – brainstorm. Your first few ideas may suck but you’ll find one to stick with. Choose something you’d actually want to use and find a way to make it unique, useful, and profitable. I decided to make an app that would help other people in my organization read the work that they’ve published. It’s important to be passionate about the idea you have while having some support from the user base. Your focus won’t dwindle when you get frustrated with all the minor issues that pop up because you will be accountable to the people for whom you’re making the app. You will fatigue, so you might as well choose something that you would appreciate spending day and night on (not that you will but still).

 

Planning Is So Important

The less you change your app design throughout your development process the fewer headaches you’ll suffer. Getting to create your own app gives you the ultimate control over the end product. I initially overreached on my first app and tried to add features like favoriting and searching that took too long to implement. Learning to trim the fat for your first MVP (Minimum Viable Product) will be invaluable while you’re designing your app.

It’s also important to understand the need that your app fills. If a feature doesn’t promote the solution that your app promises, that feature may need to be revised or scrapped entirely. It’s important to keep the scope of your app narrow, so that your focus is driven towards things that will reap the biggest benefit for a user.

Also, it’s important to do market research; it’s more than likely that someone has created something similar and you should take that into consideration. I looked at other RSS feed reader apps and determined what features they’ve implemented and what I could do better than them. Is the market saturated? If so, is your app specific enough that the people in your niche would use your app over others? Act like a user: Is your app flashy enough to capture the two-second attention span of an average human being? Is it compelling enough to compete with similar apps? While these criteria are important when trying to make a commercial success, it may be worthwhile to fulfill these criteria even on a side project. I made sure to develop an app that fit a small enough niche, that even in the RSS feed-reading category, my app would appeal to readers of the IFJ.

 

Make Rough Estimates 

Determining how long it takes for one to finish a task is an invaluable skill that takes time and practice to develop. Making estimates is a key tool to help finish projects on time. Appropriate estimates can help determine what the timeline is and if certain features can be added or cut based on the time frame remaining.

I wouldn’t worry if your time estimates were wrong, my first estimates were all over the place. Wiley helped narrow my focus and develop a more realistic timeline and this helped me take an app that I thought I could develop in a week, to a more manageable 3 week timeframe. The entire estimation and user story process allowed me to break a big task into smaller ones and allowed me to appropriately allocate my time to different tasks.

Screen Shot 2016-07-29 at 10.05.20 AM

Not only do rough estimates help you plan, they also feel rewarding whenever you finish a story. These small successes help you realize your goal and help fatigue from setting in, but they may also cause some tunnel vision. It’s important to avoid focusing so much on the small tasks and neglecting the bigger picture. It’s hard to see the end when it’s nowhere in sight, but it’s a good habit to step back once in awhile, admire what you’ve accomplished and get right back to work.

 

func  startDeveloping () {

Congrats! You’ve come up with an idea that you like, you’ve conducted market research to refine the idea, and you’ve created some rough estimates for each feature you want to implement. Now comes the actual coding part. Depending on your app, it’s important not to reinvent the wheel; just do a cursory search on Google to find libraries or examples of apps that attempt something similar. This way, you’ll save time and effort by piggybacking off of someone else’s work. Keep in mind, if you run into errors, debugging someone else’s huge code base written five years ago won’t be easy. Taking into account the benefits and drawbacks of outside codebases, it’s important to use them wisely, while writing custom code for any critical functions.

Coming in as a first time iOS app developer, I was kind of frustrated with the fast pace of mobile development. I learned to write in Swift but a lot of answers online were in Objective-C and translating between the two was difficult. I used a lot of help from the veteran developers here (everyone but me) so I had a competitive advantage. However, StackOverflow and Stanford’s online app development course were invaluable debugging tools. I’m glad I live in the age of the internet because I would’ve asked a lot of stupid questions in the office without it!

}

 

upload

QA and Review – Make Sure Your App Works

QA was minimal for my project, I mostly utilized my own testing of the app installed onto my phone to test the features that I wanted to and to ensure that the app would layout UI elements properly. I would fix whatever I could and then ask the developers here how to fix the other issues. Jennifer gave me valuable UI critiques, while Wiley, Patrick, Travis and Jack helped me write reusable and robust code.

While testing in-house is appropriate when creating a final product, it’s important to test the app in the field with actual users. To refine my idea, I decided to add some of the members from the IFJ to “TestFlight” the app. Having external testers requires a beta app review, but it also allows for easy app testing from end users, and this step can bring in valuable information for later revisions. Analytics and testimony from the users can help pinpoint trouble spots in one’s app and allows a developer to apply a polish that appeals to the end user.

Once all QA is completed, it’s a good time to send the app to review by Apple via iTunes connect. Get your killer app icons, screenshots and description text ready as you head to the App Store while you gear up to submit!

 

Post That App

The best part of doing all of this work is submitting to the App Store! Congrats, you’ve gone through the process of completing the development cycle of an iPhone app. Assuming your app has passed Apple’s review process, you can now post in the App Store. Pop out the champagne and celebrate!

Oh, but wait, no one’s gonna download your app if you don’t promote it… get out that old Twitter/Instagram account and start posting! Reach out to other people you know to get them to tweet about the app, do everything you can to get your app’s name out there. Leverage social media accounts, email lists, paid and free ads, anything that will get your app to the top of the App Store list.

 

Bathe in the Digital Benjamins

In the end you’ll have shipped your first app to the App Store. A process that might feel long and difficult, but relatively painless when compared to traditional application shipping. Thank your Apple overlords as you rake in that sweet app money.


Working to live at LunarLincoln
Apr
25

Working to Live not Living to Work

  • Posted By : Jennifer Bennett/
  • 0 comments /
  • Under : Business, Coding

“Startup Life” – everyone knows this means long hours and intense work schedules right? It’s all about doing more with less, and if you’re not putting in more time than everyone else you’re clearly not cut out for startups right? Right?

Working to live at LunarLincoln

A little known fact: LunarLincoln has a 35 hour work week.

We also let our crewmates work whatever hours they want to. Why? For so many reasons. Because we want to create a sustainable work environment for our crew. Because we know we get better quality work when our dev’s are fresh and in the proper mindset for the task at hand. Because sometimes you hit a wall and just need to take a break to clear your head. We don’t put in “Let’s check Reddit since I have 30 more minutes till 5pm” time, and we don’t put in “I’ve already worked 50 hours this week on this project but have to put in 10 more to push it across the finish line, who cares about code quality at this point. Get. It. Done.” time.

http://alifeofproductivity.com/number-of-hours-work-a-week-to-be-the-most-productive-35/

Graph courtesy of http://alifeofproductivity.com

We only require 32 hours because our crewmates are individuals who deserve to be husbanded and treasured. They aren’t expendable and they’re not interchangable. We aren’t a code factory, we’re a small shop of craftsmen. (Plus there is some science to this madness ^)

Do your work. Do it exceptionally well and be proud of what you’ve created. Then go home and enjoy your life. If that life is learning more about mobile app development or building your own apps, awesome. If it is going to concerts and throwing dinner parties, that’s awesome too. We want our team to take that time and recharge and refresh, and most importantly we want them to live their lives.

But wait, you said a 35 hour work week, what are those 3 extra hours?

We want 32 hours of client-billable work. The work that supplies the paycheck. But you know what not only helps our crew but the final client product too? The time to learn new things. Learn the best new techniques, programs, and languages so that we can be more efficient, effective, and on top of our game. Those three hours are for personal development, whether that is reading blogs, using some extra time to try a new thing, or going to an event in town. It’s important and nonnegotiable.

While there are many approaches tech companies take for “salaried” workers we feel that this equation works the best. “Startup Life” doesn’t have to equal epic burn out.

200a

For us, “working to live” makes for a happy balance and keeps us excited to build new things each and every day.


Feb
29

Solving Hard Software Development Problems

  • Posted By : Travis Smith/
  • 0 comments /
  • Under : Coding

One luxury we as programmers often take for granted is the vast wealth of others’ experiences available for perusal at our fingertips.  Rarely do we encounter a software development problem so challenging that Google and StackOverflow cannot offer assistance. However, when working with cutting edge technology, these elusive obstacles arise more frequently and I’ve dealt with my fair share of them here at LunarLincoln.

While there is no steadfast problem-solving algorithm, most code artisans (I’m hoping this name sticks) will first consult the web.  More often than not, the hunt ends here.  An experienced developer will know the specific keywords that will help narrow the search for the solution to their problem.

giphy-2

But what if you encounter a problem that nobody knows how to solve?
Worse, what if nobody else has ever tried to do what you’re doing?

This is where we have to break out the big guns. Let’s use an example.

When I worked on Compass, I was tasked with figuring out how to stop it from draining the user’s battery so much.  At the time I hopped on the issue, Compass was tracking location data, motion data, HealthKit data, calendar events, photos, weather and more.  All the time.  Yikes.

compassiconintegrations1

Unsurprisingly, most phones didn’t react well to this kind of stress, and the largest complaint we got from testers was the drain it had on their phones.

Since everybody knows that premature optimization is the root of all evil, I had lots of avenues of attack.  The first matter of business was to figure out the biggest culprits.  Using Apple’s Instruments program, I was able to run the app and observe the battery usage levels as well as find out which parts of the app were consuming most of the CPU cycles.  As it turns out, recording a user’s location was creating huge spikes in battery consumption.  Knuckles cracked and fingers wiggling, I was ready to take a stab at it.

Adventure Time Deer

The first thing I did was dig into the current implementation to see how it worked.  The app was always tracking location, even in the background, with the highest quality accuracy.  And that’s great for results, but bad for battery.  Fortunately, I had a place to start looking for a solution.  Todd had a pull request ready which he said improved battery life but was ruining the accuracy of the location data.  His idea was to use geofencing.  He would wait until a user stopped moving, disable the GPS, and activate a geofence around the user.  When a user had moved a significant distance, the geofence would trigger, and the app would resume high accuracy tracking until the user stopped moving again.

I thought that was a brilliant solution, but as I researched all my options for tracking location, I learned it wasn’t going to work as we wanted.  Geofencing just didn’t offer enough precision.

giphy

The location logger app

The location logger app

The second solution was the phone’s motion coprocessor.

We were already tracking the user’s activity state, and I opted to hijack this information to determine when to activate and deactivate the GPS.  When a user is stationary, turn off the GPS.  Otherwise, crank it up.

Now I needed to create the algorithm to make this happen.  To iterate on the fine details of algorithm, I created a really small, ugly, but highly functional app that tracked my location and let me plug in my actual activity state (to make sure the motion coprocessor was accurate).  I would walk and drive around the neighborhood to test its accuracy while measuring its battery consumption. (Ben even went on runs to test the running measurement, and may or may not have eaten it on a piece of random construction material. Sorry Ben!)

The location accuracy visualizer app

The location accuracy visualizer app

When the tests were done, I would export the data and compare the location data to the route I actually took.  I created another tester app just to map the travel lines.  Using this, I could see whether my algorithm was precise enough to meet our needs.

In the end, I was able to create massive gains in battery performance without any noticeable hit to location accuracy.  Of course, the app still needs a lot of battery, but my models showed that multiple more hours of idle use could be seen, especially when stationary.

This form of rapid prototyping helped immensely in crafting a solution to this open-ended problem.

Surely this wasn’t the only way to solve this problem, nor is this guaranteed to be the best solution.  But one of my favorite ways to tackle a problem is to build myself some proper tools.

 

“Give me six hours to chop down a tree and I will spend the first four sharpening the axe.” – (Probably not) Abraham Lincoln


Feb
02

Life in the Fastlane: CI/CD Tools for iOS

  • Posted By : Jennifer Bennett/
  • 0 comments /
  • Under : Business

LunarLincoln’s own Patrick Goley spoke at CocoaHeads Nashville this week about continuous integration and continuous development tools for iOS. Some highlights of his talk were:

  • How to build and upload to iTunes Connect (or other services) with a single command
  • How to use Match to manage code signing for teams and build servers
  • How to generate screenshots for your app in every device/language combination (OMG!)

Check out his sample project with Fastlane integration on Github: https://github.com/patgoley/Todo

Download his slides here: Continuous Deployment with iOS

Or watch a video of the real deal:

[responsive_video link=”https://www.youtube.com/watch?v=eAUnFYEQ6sU”]

We’d love to see you out at CocoaHeads Nashville each month – great talks, great people, delicious pizza, and beer. It is run by the talented and charming Blake Merryman and Bryn Bodayle and there are a myriad of topics covered each year. Sign up for updates at www.meetup.com/Nashville-CocoaHeads/.

Hungry for more? Here are some videos of past CocoaHeads talks:

  • Scripting with Swift by Blake Merryman
  • Creating Custom Views by LunarLincoln’s Jonathan Wiley

 


Sep
11

LunarNoobs We

  • Posted By : Jennifer Bennett/
  • 0 comments /
  • Under : Business

We have a new employee! (We have TWO new employees (one of which is me – but we’ll get to that later)). So who is this guy helping us write all our code now?

May I present: Travis Smith!

Travis completely bewitched us by writing the best cover letter ever... (note to future applicants – I delete emails from those who cannot form proper sentences – LunarLincoln requires a modicum of grammar skills in addition to coding skills). It was as follows:

Hello Mr. President,

 

One score and two years ago my founding father brought forth on this continent a new programmer, conceived in happiness, and dedicated to the proposition that all developers are created equal.

 

Now we are engaged in a great job hunt, testing whether that programmer, or any programmer so conceived and so dedicated, can long endure.  We are met on a great medium of that hunt, the Internet.  We have come to dedicate an application with that medium, as an initial starting place that that programmer might work.  It is altogether fitting and proper that we should do this.

 

My name is Travis Smith and I’m looking for a software development job near Nashville.  Today I found LunarLincoln and was immediately drawn by its professional yet energetic and fun attitude.  While I am still a young, blossoming developer, I feel my eagerness to learn, my propensity to retain knowledge, my drive to succeed, and my clever wit would be a great asset to your team.  I don’t have the most experience with app development or procedural languages but you can bet I’d pick up the skills like a Roomba picks up dirt: quietly and routinely but at the end of the day you’ll be very satisfied with my work.  Attached is my resume for your viewing convenience.  If you need further convincing feel free to contact me any way you’d like.

 

The moon looks great by the way; I love what you’ve done with the place.

We loved it (plus he seemed to be a pretty good coder, which doesn’t hurt). After interviewing him (and many other applicants) we, of course, picked Travis.

So who is this kid?

Travis_LLHeadshotTravis is originally from Melbourne, Florida, and we’ve pulled him all the way up to Nashville – to similar hot, armpit weather minus the lovely beach. So far he seems to like it (or at least he claims to). He graduated from University of Florida, Gainesville cum laude with a degree in Computer Science and has past experience at VeriFone, Tyco International, and Tata Consultancy. In his free time he built and maintained a League of Legends leaderboard.

Currently Travis is absorbing all of WIley’s skills at light speed levels and we’re glad he’s joined the team.

Never leave us. Never.

tumblr_lsd9kegAk01qb1gqco1_500


Recent Posts
  • Copious Communication
  • Initial Questions for a New Mobile App Project
  • Gif TV: A LunarLincoln Product
  • Onboarding other peoples code
  • What’s in a name?
  • Don’t build it all. Picking a Platform.
  • Talk to your Users
  • Design for Fat Fingers
  • A new look
  • Hourglass for Jira
Archives
  • May 2021
  • September 2020
  • November 2019
  • October 2019
  • June 2019
  • April 2019
  • February 2019
  • January 2019
  • October 2018
  • August 2018
  • June 2018
  • April 2018
  • January 2018
  • October 2017
  • August 2017
  • June 2017
  • February 2017
  • January 2017
  • September 2016
  • July 2016
  • April 2016
  • March 2016
  • February 2016
  • October 2015
  • September 2015
  • July 2015
  • May 2015
  • February 2015
  • December 2014
  • November 2014
  • September 2014
  • May 2014
  • April 2014
  • January 2014
  • December 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • December 2010
Categories
  • Agency
  • App Advice
  • Branding
  • Business
  • Business
  • CaseCollage
  • Coding
  • Design
  • Design
  • NSVille
  • Uncategorized
  • Web Design
Copyright LunarLincoln 2023. All Rights Reserved