Full Stack is a software company providing data products and services designed to unlock business value, through the delivery of quality software on time at a fixed price.

Explore Tagged Posts
Last Seen Blogs

We looked inside some of the posts by wearefullstack and here's what we found interesting.

Inside last 20 posts
Time between posts
2 months
Number of posts by type
Fun Fact

Furby, that creepy 1990's doll, has a tumblr page.

wearefullstack·2 years agoText

by Gabby Schoeman, Head Designer at Full Stack

With the inevitable challenges within and demands of a modern business, more and more companies are turning to the product design sprint to help solve some of their problems more effectively.

The product design sprint is a focused framework broken into five stages namely, Understanding, Diverging, Deciding, Prototyping and Validating and focuses on aligning the needs of all stakeholders and testing ideas efficiently. In order to run an effective design sprint and co-create the optimal solution, the knowledge and tools of an inter-disciplinary team is pivotal. The whole team needs to be aligned on the problem set and ideate solutions, prototype their ideas and test them using real users in only five days.


So why should you incorporate design sprints into your company’s way of work?

1. It saves time & minimises risk

For any business to survive, efficiency and effectiveness is pivotal. Design sprints compresses months of work into a single week and are geared towards speeding up new product discovery and encouraging action. This is done through the use of rapid prototyping, which allows teams to encounter and solve problems faster, ultimately reducing the time and budget as idea validation happens as you prototype.

2. Multi-disciplinary teams maximises your products’ chance of success

Within the design sprint, bureaucratic systems and hierarchies are thrown out of the window and ideation happens within a multidisciplinary team of individuals. This collaborative approach enables a team to get answers to complicated problems within a short period of time and is a great way to create breakthroughs and new solutions that would not necessarily be generated by an individual per se.

3. It is agile and flexible

The product design sprint framework was developed by Google Ventures in 2010 and was created to create a flexible framework that empower start-ups. It also fits into other agile development methods such as scrum and lean, perfectly.

4. It helps you build customer-centric solutions and test assumptions early

The product design sprint places major emphasis on a user-centered approach and members are required to act with empathy and stay aware of the customers’ needs throughout the sprint by listening and building trust and meaningful relationships with users. This approach keeps the user’s needs top of mind and helps build products from the user’s perspective. These solutions are then tested during the sprint which results in the team getting immediate feedback and empowering them to make informed decisions on problem sets from the get go.

5. It helps breed a culture of innovation

Due to the high energy and rapid nature of the design sprint, it’s a natural breeding ground for innovation. Tit also sets the stage for companies to identify invested, forward thinking individuals.

Looking at the above-mentioned benefits, it’s clear that the product design sprint allows teams to test ideas in just a week where it would have previously taken months. It further aligns a team and enables them to reach clearly defined goals and gain key user insights fast; creating a breeding ground for innovation. This all happens under a single, shared vision which ultimately helps companies launch their product faster.

0 notes · See All
wearefullstack·2 years agoText

A thought piece by Jon Froon, Lead Developer at Full Stack

Building cross-platform mobile apps is a problem that many organisations and developers have attempted to solve. This is evidenced by a large number of cross-platform tool-sets and SDKs’ offerings. Each one trying to approach the challenges of cross-platform mobile development with a unique solution.

These offerings include platforms such as Xamarin, Xamarin Forms, Native Script, Appcelerator, uno and React Native. Such platforms offer an intermediate layer SDK built for code sharing, as well as making use of existing native platform UI controls. Furthermore, there are the HTML 5 hybrid mobile platforms like Ionic Framework, Cordova, PhoneGap and Trigger.io, which offer the ability to build cross-platform mobile applications using well understood web technologies to create their shared layer which runs on top of the native mobile SDKs. Each approach offers various benefits and drawbacks.

Enter Flutter

Google has been building their cross-platform mobile development solution in the open over the past year, named Flutter. While Flutter is still in development, it has received a strong increase of attention over the last few months with the release of the first BETA builds. With the BETA 3 release announced at Google IO 2018, Google stated Flutter is now ready for production. So what is Flutter, and is it worth considering for your next cross-platform mobile app projects?

What is Flutter

Flutter, having initially started out as an experiment called project Sky in 2015, has grown into a framework and toolkit that supports Android, iOS and Fuchsia. Flutter focuses on offering high-velocity development, through the use of fast full build compiles as well as hot reloading changes. Hot reloading allows for a near-instant stateful refresh of your running app no matter how deep you are in your navigation stack. Expressive and flexible designs, through the use of the Dart programming language, allow you to create fully customisable widgets and animations. Rather than relying on the native controls Flutter’s power comes from using its own rendering engine to draw custom controls that can easily be customised to match your clients’ brand. Out of the box, it supports a variety of mimicked material design and iOS human interface design widgets. Finally, Flutter also focuses on high-quality experiences via offering ahead of time compiled release builds and high frame rate visual animations to create fast and fluid cross-platform mobile.

Why consider Flutter?

One of the main attractions for Flutter is the quick development cycles, through hot reload. Flutter’s ability to save time and offer immediate checking of code changes is invaluable. Additionally, the ability to step away from native platform UI control allows for easily achieving high levels of UI theme customisation and sharing, cross-platform. The Flutter team have taken care to match native platform behaviors, like scrolling, to the expected behaviors of the platform to give users a sense of familiarity.

The biggest issue with Flutter at this stage is that it is still early days and many features are still in development. Some controls like maps and web views are not currently supported by the toolkit. These are not complete deal breakers as Flutter allows for accessing native platform APIs through plugins and messages.


Flutter is worth keeping an eye on, however at this stage, I would say it’s not quite ready for building your next production app. I would choose to wait until after the first full release before considering using the toolkit to build a production-focused app. The tooling is still evolving, and a lot of features are still being polished for the v. 1.0 release. The ecosystem around Flutter is also still growing with new 3rd party packages being added, broadening the ease of integration and support of 3rd party SDKs.

1 notes · See All
wearefullstack·2 years agoText

A thought piece by Herculaas van Heerden, Director at Full Stack

Firstly, owning your own bespoke software is not for everyone. The higher upfront investment in bespoke platforms, the burden of managing technology specialist and/or maintaining a sustainable relationship with a technology partner along with the due diligence involved in choosing the right tech stack and partners can be daunting. If you are a business with generic problems that can be solved through off-the-shelf solution AND you are not reliant on software to create competitive advantage, enter new markets or other strategic benefit, then the advantages of off-the-shelf platforms probably outweigh the disadvantages of bespoke systems.

At Full Stack we believe that all businesses will be software businesses in some shape or form in the future.

We see the benefits of owning bespoke software as follows:

Exact Operational Fit for Purpose

Bespoke software fits your business needs 100% and caters for your exact business processes. It drives efficiency and increases productivity and reduces cost by performing complex or routine tasks exactly as the business requires. A quick analogy: the average Microsoft Word user, uses less than 10% of the functionality on offer. With bespoke systems there are no wasted functionality or wasted training time on redundant processes that provide little or no business value.

Bespoke Software Engages Your Customers

Not a subset of the aggregated view, of the middle of the road profile client offered by an off-the-shelf platform.  The software engages your unique customers with their unique needs. It empowers business to deliver a hyper-tailored, deeply contextual and personalized product or service.

Bespoke Software Empowers Employees

The nature of work has changed dramatically with businesses with bespoke software platforms equipping their employees to collaborate anywhere, on a device of their choosing and accessing a common ecosystem of data and functionality in a structured, secure way. Bespoke software drives this process and serves a change agent galvanizing employee efforts around the common purpose.

Bespoke Software Enables Your Platforms and Solutions to Evolve Strategically

The software development life-cycle mirrors the development life-cycle of the business providing appropriate levels of strategic support and investment along the way. Investing in off-the-shelf solutions forces an investment in a pre-evolved solution without any bearing on where the business is coming from or more importantly where it is going to.

Bespoke Software Systems are a Change Agent

Making strategic and pivotal changes to your business is the response to a strategic imperative in a business. The reality is that these strategic imperatives are unique to your organization. Because the drivers and strategic outcomes required are the response to a unique set of triggers and variables, it requires a unique solution. Plugging an operational function with a generic off-the-shelf solution creates some operational efficiencies but does not drive the strategic change needed.

Bespoke Software Creates Sustainable Competitive Advantage

Building systems and processes that enable business to compete by providing efficiencies, functionality or access to markets that you might not have been able to without the help of bespoke software creates barriers to entry, lowers cost and drives profitability. Would be competitors would first need to match, in some cases years of structured and strategic investment in these platforms to compete on even ground. Again Amazon is a good example of a business investing and optimizing in the various parts of its value chain. Start-up competitors are extremely unlike to succeed, as the head start is simply too great and the risk to try and match the investment without the time to learn lessons and apply them during the process is simply too great.

Bespoke Software Helps You Future-Proof Your Business and Control Your Own Destiny

Generic off-the-shelf software platforms develop in isolation and the continued evolution of your business and changing strategy and needs have very little bearing on how the off-the-shelf platform develops. Over time this gap widens until the platform loses all strategic relevance and becomes a strategic impediment. Ultimately the platform becomes so removed from the strategic and operational realities of a business that it becomes operationally and strategically paralyzed.

Bespoke Software Gives You Access and Control Over Data

In the data-driven economies technology disruptions like the so called Internet of Things require bespoke software systems to help draw data from a wide variety of sources and draw insights through advanced analytics and apply these learnings to gain competitive advantage. Each business has a wide and unique set of seemingly unrelated data sources that can be harnessed and the markets are cottoning on to the fact that a real goldmine exists for business willing to harness the power of bespoke software systems to “weaponized” these data sources. Off-the-shelf solutions would not cater for the unique data-driven opportunities of each business.

Security Assurance

The greater the number of businesses on a platform, the greater the number of data sources and the more attractive a target for attackers. CIO’s sometimes wrongly assumes that off-the-shelf solutions are safe. In a recent study by Veracode (400 000 scans over a year period) found that up to 57% of off-the-shelf systems failed to meet acceptable levels of security. C-level executives also often wrongly assume that the business risk of data-breaches can be passed on to third-party vendors, while their business are the actual ones on the line and the stakes in customer trust is unbelievably high.

Sometimes the Tech is the Business

Software platforms create access to markets and opportunities that will not exist without the bespoke technology that drives it. It would be impossible to imagine obvious examples of companies like Amazon or Uber without the bespoke systems that drive these businesses. Bespoke systems drive the evolution of businesses and how they deliver value to their customers, engage in new exciting ways, drive new business models and disrupt throughout the value chain.

The Fourth Industrial Revolution provides abundant opportunities for those who embrace it and serious risk of disruption for those that don’t.

At Full Stack we believe the choice of a bespoke software platforms that users own, that evolves along with business strategies and can be harnessed for continued competitive advantage is a strategic rather than a technology decision. The alternative to “throw your lot in with the herd” on a generic off-the-shelf platform is the strategic equivalent of burying your head in the sand and hoping your business survives and flourishes in a collective with your direct competition.

0 notes · See All
wearefullstack·2 years agoText

A thought piece by Luke Pothier, Full Stack Lead Developer

Clean code is code which:

  1. Is easily human-readable
  2. Adheres to an agreed style guide
  3. Respects the principles of SOLID and DRY

For a developer, there is tangible value in writing code that satisfies the above criteria, both for oneself and for one’s colleagues – primarily because clean code saves time and effort. This piece will enumerate some of the advantages of following the above criteria.

1. Readability

While the compiler or runtime parsing your code probably doesn’t care whether or not it is human-readable, the developer who is tasked with working on your code after you probably does. Naming conventions are valuable tools which enable developers to comprehend a given piece of code faster, by allowing them to make certain assumptions while reading it. For example, when I see a variable which is named with a leading underscore, I can immediately assume that this variable is scoped to the class, and that part of the work of reviewing the code referencing that variable is going to include evaluating what side effects its use may have. By the same token, when I see a variable name which forgoes the leading underscore, I don’t have to waste any time considering what impacts its use may have on other class members. Adding an underscore to a variable’s name (where appropriate) might seem like a trivial thing, but doing so accelerates the development/review process, and makes it less likely for flawed logic to survive review – it can be identified expeditiously. Following naming conventions strictly leads to improved maintainability.

A second important aspect of readability is ensuring that one’s classes and class members are named meaningfully. The reasoning here is similar to that of the previous point – a semantic and descriptive class or member name is easy to understand quickly. It’s useful for developers to be able to identify the purpose of an object in code immediately, and without necessarily having to understand the details of the implementation of that object.

Essentially, human-readable code saves time on comprehension by others (or by oneself later on), and saving developer time is at least as important as saving CPU cycles.

2. Adherence to an agreed style guide

With readily available static code analysis tools like linters, rulesets and .editorconfigs, there really isn’t any excuse for failure to adhere to an agreed style guide. IDEs can now automatically format source code, and correct rule-breaking (and therefore problematic) syntax. Style guides guarantee, at a minimum, a relatively high level of code readability. Moreover, not using a style guide and auto-formatter can actively slow down code review – when changesets include things like modified indentation or line-endings because the developer who created the file didn’t have auto-formatting turned on, that can waste the time of the developer reviewing code which hasn’t been altered functionally. It may seem harmless that Developer A uses tabs and Developer B uses spaces, but consider the plight of Developer C who has to re-evaluate the same file whenever either developer merges their work. If every developer on a team applies the same rules to local files whenever they modify them, fewer source control conflicts arise.

3. Respecting the principles of SOLID and DRY

Proper application of SOLID and DRY principles when building software has uncontroversial benefits, not least of which is improved maintainability. Clean code is maintainable code, so it goes without saying that developers should strive to apply these principles to the best of their ability.

0 notes · See All
wearefullstack·2 years agoText

A thought piece by Werner Visser, Full Stack Co-Founder.

Great software developers understand the challenges of building software.  Decades of experience have shown them what works and what doesn’t.  The same can’t be said for newcomers to the industry.  They need to be shown the way and Scrum presents a “way” to bring numerous IT professionals together to build software in a disciplined and responsible manner.

Semantic diffusion, a term coined by Martin Fowler, is when an idea is spread through the wider community in a way that weakens the idea/definition.  Agile and Scrum was, and is still, suffering from semantic diffusion.  Rather than be blinded, we should be open to test our assumptions about the way in which we work; and relevant to this piece, our development methodology.

Scrum is a formal declaration of what activities need to be performed to minimize the unknown, maximize the chance for a successful outcome and create predictable outcomes.  More than anything it is an approach that encourages communication between all participants.  It provides a way for us to be disciplined; to gather our thoughts and communicate more effectively.

Let’s take stories for example, it serves as a pointer to a requirement so that two very important conversations can be had:

  1. The product owner with the client and their stakeholders.
  2. The product owner with the team.

Nothing more and nothing less.

There are formal events in a Scrum sprint i.e. Backlog Grooming, Planning 1 & 2, Stand-ups and Retrospectives.  Each of these events have a specific goal and outcome in mind.  Great developers know that for a project to be successful these activities need to be performed, not because they adhered to a list but because that is what years of experience has taught them.

Don’t let a methodology get the better of you and blind you to the realities of software development.  See them for what they are – a guide to success.  The constant cyclical nature of Scrum events/ceremonies assist us, as developers, as teams, as the sum of the parts, in being smart and getting things done. Without discipline, Full Stack will just be another casualty, in a long list of casualties, of the age-old challenges of software development.

0 notes · See All
wearefullstack·3 years agoText

Good morning everyone,

I’d like to encourage everyone to check out https://www.internationalwomensday.com/ and make themselves aware of the theme for the day, #BeBoldForChange.

While we should probably all suppress your inner SJW, being woke on the issue of equality for woman is an important responsibility for us all as people of privilege who have the opportunity to empower women in our country and world and accelerate the process of bringing parity to women in the workplace as soon as possible – it is unacceptable that this is not the norm.

As part of #BeingBoldForChange Full Stack is pledging to continue our current gender equity steps of hiring equally based on gender in terms of intern intake, and augment this with active recruiting of potential women engineers from Matric level, starting with Matric level interns from the middle of this year. Unfortunately STEM education in South Africa remains dominated by men in terms of raw numbers, but we feel that we have a unique opportunity at Full Stack to create a company that truly represents the diversity of gender, cultural and ethnic background if we are committed to meritocracy and treat everyone fairly and equally as people.

Through our UK entity we’ve also donated to the International Woman’s Day partner charity, the World Association of Girl Guides and Girl Scouts, who operate programmes for leadership and personal development of girls and young women in over 146 countries, including South Africa.

Our first full bursary to complete honours studies was extended to and accepted by Chelsea Tobias last month, and she’ll be joining Full Stack as a junior developer following the conclusion of her studies in 2018.

Please retweet our donation call at: https://twitter.com/wearefullstack/status/839381778745987073

In the world of brogrammers and terrible behaviour towards women at many digital firms (here is looking at you Uber), Full Stack is committed to empowering and developing all our talent, but especially women – as they remain woefully under cultivated in our industry – in spite of many of the computing greats happening to be women.

If you would like to help develop our outreach and development to women engineers, designers, product owners and analysts please contact me.


0 notes · See All
wearefullstack·3 years agoText

With the rapid shift of enterprise workloads to cloud services, first with Infrastructure as a Service (IaaS) and increasingly Platform as a Service (PaaS), in the South African context we’ve found that there are two core concerns:

  1. Data privacy concerns, primarily POPI
  2. Speed/performance, often citing latency as a concern

In the case of the first concern, increasingly the compliance issues are being well understood, and the EU-aligned nature of the POPI legislation makes hosting in European cloud data centres the easiest way to support POPI out of the box as far as infrastructural compliance is concerned (As a side note, we find it interesting that many businesses are concerned about the WHERE of the data which should be protected with POPI, but few if any are addressing the WHAT aspect – i.e. what are we doing with our data that we should even fall into any sort of POPI compliance issue).

More broadly the physics of light mean that no matter the bandwidth between South Africa and data centres in Europe (and even further afield) latency will be an issue. This is a fact of life well understood by gamers and networking engineers around the country. Unfortunately, this has metastasised into a convenient excuse to continue to build new systems based on on-premises stacks, where the cloud would provide far better options on scaling and support.

Latency is the delay before a transfer of data begins following an instruction for its transfer. In essence, the length of the ‘piece of string’ or in this case the fibre will have an effect in terms of latency, the roundtripping time for a request to start and for the response to begin.

Traditionally when systems lived on-premises or in a server room, or a data centre at a firm’s ISP (or more often than not, under the receptionist’s desk on a Small Business Server), latency was less of a concern – and this meant it was not considered in system design.

Now, the tremendous power and potential cost savings of the cloud in South Africa are not being embraced by businesses, small and huge, because of some synthetic concern around latency – without considering the far easier solution – software needs to change to be able to embrace the vast opportunities the Cloud provides, and software houses need to reconsider the patterns whereby data is accessed, secured and sent over the wire.

In founding Full Stack, we felt our name described our core – to be generalists across the computing stack – from the hardware to the human user experience. We are often told that generalises fail, and we should specialise. For a company that was almost called Iconoclast, we are not worried about proving the doubters wrong in that regard.

And it is in understanding the nature of networking, particularly cloud networking, that design flaws in software that needs to be cloud ready can be addressed. These are a combination of the simple, such as batching updates, and only requiring minimal data, to the more complex such as bi-directional fault tolerant background synchronisation of data sources.

From our inception we have built solutions on the cloud, often building the first products and platforms for clients on the cloud. Our developer operations team have worked on services like AWS and Azure since their inception; we believe that an exciting new era for cloud in South Africa is imminent.

Contact us to learn more about making your next software project cloud ready through excellent software practice, and let our gifted software engineers work with your team in sprinting towards well-designed cloud-ready software solutions at cloudready@fullstack.co.za

0 notes · See All
wearefullstack·3 years agoText

AWS suffered outages and the internet sighed a collective sigh that left many sites down - as the engineering decisions made by developers who utilised AWS were exposed (https://techcrunch.com/2017/03/01/the-day-amazon-s3-storage-stood-still/). 

At Full Stack, we use AWS and Azure every day directly as a consumer of cloud services, and a litany of other services which are built on these cloud providers. More and more the story of the internet is the story of these mega-hosts, and their unbelievable computing and storage capacity. 

At a recent conference, hosted by Microsoft Azure (but just as true for AWS), the message was that for the cloud to really work, software needs to be designed with the cloud in mind. 

That means a change to the paradigm. Was AWS US East 1 down for S3? Sure… but had systems been designed to utilise other regions and data centres (as Amazon recommends explicitly) then your service would have been unaffected. 

A deeper understanding of the strengths and weaknesses of the cloud need to be fostered - it is not a panacea - and in a South African context, it can also include FX pricing exposure, making long-term planning more complex. 

The core takeaway for us, in spite of none of our AWS services being affected, in spite of using S3 liberally (as one should - it is a great service) is that we can always be expanding and deepening our cloud practice - and that goes beyond simply developing for the cloud - it means designing the entire experience of the system with the limitations and strengths of the cloud in mind. 

0 notes · See All
wearefullstack·4 years agoText

At this week’s Google I/O conference, Google announced Instant Apps (https://developer.android.com/topic/instant-apps/index.html) which blurs the lines between the web and app experiences - something absolutely necessary for businesses who find the majority of their access coming from either paid-search or other forms of web traffic. 

The “App as TV Channel” model driven by iOS is broken, and rests on Apple’s technology stack - something not necessarily apparent to people who aren’t developers. 

At Full Stack, when we are building our native apps in Xamarin, we speak deeply about the strengths and weaknesses of each platform. This week, one of our lead mobile developers Chris had to tell a client that what can be done visually in Android in 20 lines of code will take 600 in iOS; sadly that is the truth. 

Now Apple’s UIKit’s failure to be modern in any real way is coming home to roost - the Android Instant App feature is predicated on their AXML format which means that modular components can be loaded “instantly” - I wonder how Apple will answer that challenge with the monolithic nature of an IPA (iPhone Application). 

As a business which rarely does a project that doesn’t have a mobile app in one shape or form as part of the solution, its concerning that iOS does not appear to be keeping pace with Android when it comes to developer solutions - yes, the lust for Apple products keeps it relevant and essential to any mobile app discussion, but the long term trend lines aren’t good. Android is simply a far deeper, richer and versatile platform. Not to mention cheaper. 

iOS isn’t going to simply be fixed by Swift as some might hope - there are deep architectural challenges in the iOS stack that we are sympathetic to Apple around - if they were to radically change their programming model now, it would have deep consequences. Also there is an argument to be made, that why change when you are winning? That is predicated on their superior hardware, and that is a compelling argument. 

But for long term viability of the platform, there are serious concerns. The entire Apple software stack is looking antiquated, from iTunes to iBooks, to Apple Music - something is rotten in the state of Denmark (or Cupertino). 

Increasingly, we find Apple as a laggard in terms of software currency - recently we couldn’t use WebRTC as a solution for a video conferencing project because, surprise surprise Safari on Mac is the only major browser to not support WebRTC. When Internet Explorer has superior W3C support, then you know you are doing something wrong. 

When we consider that Chrome was an offshoot of WebKit (i.e. Safari), and that it now dominates the browser market, and that early versions of Android were little more than iOS clones, it really is tragic that software innovation at Apple has slowed. It might take longer to really bite, but there seems to be a recession of software innovation at Apple which if left unattended will present real problems with the entire eco-system. 

I’m sure this is well understood by Apple engineers, but as a software business which engages with Apple’s products and platforms on a daily basis, it is concerning that in the two years of our business’ existence there has been so little innovation by Apple compared to the rocket ride of Android and Windows tooling in the same time. 

Instant Apps is one of the first public indicators of the flexibility of Android, and a challenge which we believe Apple will struggle to answer in a non-hacky way on iOS. 

0 notes · See All
wearefullstack·4 years agoText

In this post, Full Stack Business Analyst Willem Swanepoel, looks to cricket for an example of how sometimes shifting a game plan is better than sticking to one that isn’t working. Willem leads up our retail and FMCG business analytics project, and has been with Full Stack since September 2015. 

As we head into [yet another] ICC Cricket Tournament, this time the shorter format of the game, I am again reminded of how everything is different and yet everything is the same. Take the story of Hashim Amla.

Back in the day Amla was a top performer for his franchise, but every critic who knew something about cricket said that he would not make it on the international scene, “especially not in the Test arena”. This might seem ridiculous now, considering as a batsman he is rated as 4th and 3rd in the ICC Test and ODI rankings respectively. However back then this argument was sound logic based on one fact – he has a “strange” technique.

Long story short, he made his debut in 2004 against India and had great success. He singlehandedly won us a number of games – yet everyone was comparing him to Jacques Kallis – a technical genius – and kept on saying that he will never be as successful as Kallis. Then, low-and-behold, came the inevitable slump that all batsmen have, and even though he was still scoring some runs, it seemed laboured and it was at a very slow rate. And although he’s average never really dropped below 35, it seemed like the critics might have been right.

I remember watching a game where Amla failed to score and Kepler Wessels said in the commentary that he “was working extremely hard on his technique” – and suddenly his slump of form started to make sense… and I reckon Amla came to the same conclusion. Not long after that game it seems Amla made the decision to focus on runs rather than technique, and not only did his form improve despite him still having his strange stance,  but in 2008 he also made his ODI debut and he has been named in the World Test XI since 2010.

So how is this relevant to Full Stack, or anything other than cricket for that matter… well it’s simple. Businesses nowadays are playing the ODI format, we need to provide quality products and services in a LIMITED amount of time. We need to realize, as Amla did, that perfect technique is the state of the output and not an output itself. Perfection is a state that, by the definition of continuous improvement, can never be reached but should always be strived towards.

Winning the game is an output, coding an application that works well is an output, delivering on deadlines is an output. We should realize, as Amla did, that if professionals deliver the required outputs then naturally they will improve their technique, thereby helping them to deliver even better outputs and thus move closer to the state of perfection.

So in comparison with Amla and all professionals, even though our industry is different, we should strive to do the same.

0 notes · See All
wearefullstack·4 years agoText

Enterprise mobile apps are something we are pretty familiar with at Full Stack. It still amazes us how many clients will say “and we’ll need to be able to import and export PDFs”. This often comes straight after we’ve spent days designing the interfaces and logical models that are required to enable a completely seamless and clean user journey through the core requirements of the business. 

What is a great dynamic, generic system which allows for the import and export of PDFs? Email. Use it. 

So many bespoke projects can devolve into the recreation and conceptualization of the already-built. At Full Stack we feel strongly and advise against this happening - there is too much great software to be built with our clients and partners for us to be hamstrung by recreating what is already there - when ever we’ve indulged this impulse we’ve ended up disappointing ourselves, our clients, and our obsession with quality. 

There is nothing wrong with ‘same’ or ‘like that’ - we are suggesting that different is necessary - but rather that software should be fit for purpose. If what you need is process discipline within your communication platform, don’t create another platform, optimize and adjust the one you already have. 

PDF’s relevance has increased surprisingly after HTML. This should alarm many of us - why in a world in which we can present copy and images in a universally render-able markup (i.e. HTML) do so many enterprise systems continue to call on the Gods of PDF. 

Security and durability that are provided by PDFs are certainly winners, as are the document signing and tamper-proof security. Should those features be recreated within apps - no, of course not - but if your business has committed itself to a PDF workflow, then we encourage our clients to look at and understand the role PDFs play - are they are an output of a process, or an interim step; if they are an interim step then you’d need to really consider how that process can be scaled into mobile and take PDF with it. 

Depending on the nature of the PDF’s place in a business, there are a variety of options available (contact our MD at andrew.lagrange@fullstack.co.za if you’d like to discuss) - but above all we encourage PDFs to be a reporting function at the end of a process, and to be though primarily of as a pre-paper and post-process desktop artifact; yes you may want to view them on the phone - but then rely on Adobe’s excellent reader client on mobile - don’t reinvent the wheel by viewing the PDF within your own application - that adds needless complexity and cost. 

PDFs are pre-internet. Think about that. Yes, Adobe has invested heavily in the platform to make it relevant in the digital era, but fundamentally a PDF is a gateway drug to paper - if your business is truly committed to digital evolution then we encourage you to consider deeply abandoning PDFs entirely, and rather create rich, intuitive and relevant interfaces on your logical models, rather than replicating the paper reporting of the late 20th century in today’s mobile landscape. 

0 notes · See All
wearefullstack·4 years agoText

At Full Stack, being a member of the team is a vocation to being unique. Not impossible, like a unicorn, but rather unique, resilient and able to operate from day one. 

In our 18 months of existence, we’ve put together some interesting groups of people to collaborate on our clients work - some for a few days, others weeks and other months. 

As we head into another round of needing to add people to the team, the question often becomes (both internally and externally) - what are we looking for?

Our playbook says that a Full Stacker is someone who is smart and gets stuff done. Our record of those who thrive vs. those who wither at Full Stack is that we are called upon by our clients to do unique work - the kind of work their internal software divisions, retained agencies and contractors are simply not able to fulfill. That isn’t to say we do so easily - but we apply ourselves constantly to deliver on the greater ask. 

Digital designers and developers can often approach things as if the call of the task at hand is something more - terms like monster, ninja, cowboy (or cowgirl) get thrown around. But what we really need are operators - people who are not afraid to operate from day one - who have the experience in learning new things quickly and applying those learnings to the task at hand, fast. 

We haven’t become the team we are without making a few missteps or seeing good colleagues go from time to time - what’s important is that we are directed towards a higher purpose - a purpose to place software at the heart of every business or organisation we interact with, and a purpose which we can commit ourselves. 

We don’t have to make apologies for wanting the best out of ourselves and our team mates - so if you are ready to face the challenge and be smart and get stuff done while embracing your unique ability to do great work, then drop our MD a mail at: jobs@fullstack.co.za

0 notes · See All
wearefullstack·4 years agoText

Full Stack was founded in May 2014. It started trading in August 2014. We are a completely bootstrapped start up. There are no rich parents or angels bankrolling this train – just the hackers and hustlers needed to create great relationships built on some of the finest bespoke software in the market.

We’ve operated in four offices in that time, and are about to move into our fifth space in less than two years.

We’ve committed over 7000 commits into source control; a sign of our prodigious veracity when it comes to dropping quality code.

We’ve held over 20 major client relationships in less 16 months, and have a client retention rate of over 90%; despite beginning all our relationships with a single challenge, we begin our third calendar year with most of our client partnerships maturing from project based, to retained relationships, as we begin second, third and even fourth rounds of new work with clients.

We love code. We are developers, and we have grown our ranks of designers, developers, analysts and testers beyond 20 dedicated full stackers, and look to again grow by another 50%+ in 2016. Our clients don’t stop asking for more, and we believe that there are many underutilised, under inspired and overlooked developers who are just waiting to join Full Stack to see their careers reach their apex.

We’ve struggled to have our systems, processes and people keep pace with the incredible challenge of growth, uncertainty and the strain of always wanting to do great work for our clients. That constant quest for the removal of blemish and defect hasn’t always led to perfection, but it has led to a gradual refinement of all we do. We appreciate that we’ve been able to receive open and honest feedback from everyone we do business with.

We’ve discovered that many in the industry who present themselves as allies or friends, are just competitors and impediments who sadly may have to face down with unbridled competition in tooth and claw in the future – it’s show business not show friends; at the same time we’ve found tremendous partners in clients, colleagues and fellow software firms who are committed to open, honest and transparent opportunities for those who are committed to creating great software, and disrupting the status quo.

We’ve lost a wonderful co-founder, and gained a great new ‘late’ founder; starting a business is never easy, and we are eternally grateful to Danyal for taking a chance on nothing and helping build it into something, before it was his time to move onto other great things beyond Full Stack.

We are thankful to everyone who has worked with and for us since the start – some have moved on, but we always look forward to catching up and hearing about your latest adventures – we hope that the passion and fearlessness that led you to Full Stack never disappears, and that we find a way to work together one day in the future, even if across the table.

2015 has been an exciting, tough and challenging year – with time, financial and human pressures that would crack most – but Full Stack is about delivering quality software under constraint – and we’ve done that time and time again – establishing our commitment to always work at being better – we’ve had to introduce more and more to our offering as we’ve scaled, and that’s resulted us in asking  for great feats from our team (albeit only from 9 to 5 most days) and receiving it more often than not.

We look forward to another incredible year ahead in 2016, where we see ourselves continue to drop even more code in collaboration with some of the biggest companies in South Africa, focus on refining and deepening our Agile processes, expand the number and size of our development squads of full stack talent, and see the launch of our new offices designed from the ground up to not only house our tremendous team, but create dedicated collaboration spaces for our clients to come and live, work and play with our development teams as we work together to create the next generation of products and services for digital users in retail, mobile, financial services and bespoke software.

0 notes · See All
wearefullstack·5 years agoText

October is shaping up to be a big time for our business, as we grow past the intimacy of our first year, and into a stage where we are adding a lot more development and analytical capacity - two new BAs and three new developers have joined or are the process of joining over 5 weeks - that’s someone new each week till the end of October. 

That’s put us all into something of a navel gaze, as we look at keeping our operating philosophy and values intact, as we address the fact that we need to scale to continue to provide our existing, and our new clients, with what is so special about our services over any other bespoke software firm. 

At the core of our growth is actually smallness. Not small thinking, or small ambition, but rather the need to be small, intimate and close as we work together on client work. 

So rather than trying to scale our team horizontally, which we know simply won’t work (we’ve seen it fail in so many businesses) - we are returning to our most intimate of structures, the Full Stack Client Team:

- A master developer

- A journeyman developer

- An analyst

- A tester

- A UX developer

At the heart of this team is a commitment to one another, to the work of building needed software, and to the needs of the client - not just technically, but holistically; software doesn’t live in isolation, so neither can our solutions - we must take the human factor to heart in everything we do, from design, to analysis, to project management, to testing and ultimately coding. 

Aren’t we inviting force asymmetry between our teams of 5, and some big and powerful clients? Yes, we are - but we would argue that asymmetry is in our favour. By making teams with nowhere to hide, it reveals weaknesses to be fixed, and shows strengths that go unseen in larger teams.  

Full Stack prides itself welcoming, cultivating and delivering ‘operators’ in all spheres of the software development lifecycle: our teams are made up of elite individuals who are creative and flexible, capable of handling uncertainty and complexity and are undaunted by the intimidation of historically unsolved challenges.

Growth of a team of operators is a big challenge, but it leaves our core team undaunted and presents our new members an opportunity to make their bones on some truly unique projects. 

As we seek to be elite in our thinking and action, we are called to face every challenge with integrity, courage, competence and creativity. 

Our creative approaches need to extend and expand beyond the aesthetic, something which the consumerization of software has moved from a ‘nice to have’ to an ‘essential’. Historical creative sources, agencies and their ilk, are no longer relevant in a commoditized commercial art world of 99Designs and dollar design competitions. Creativity in the current software context is the courage to managing and mitigating risk in a fast changing landscape. 

Flexibility to address uncertainty is critical, and Full Stack is always growing to address this challenge - not always in headcount for sure - but we are always looking for new and improved ways of solving our own and our clients challenges. 

The software we are building today is nothing like the software we built a year ago, and will be nothing like what we are going to build a year from now. What will be the same with be the dedication to integrity, courage, competence and creativity. 

0 notes · See All
wearefullstack·5 years agoPhoto

Do I hear a Hoo?

Full Stack is proud to have become a Hortonworks partner. We love data in all its forms (and scales). While we work with SQL Server as our RDBMS of choice, and have in-production solutions utilising MongoDB and Neo4J, we are passionate about Hadoop and HDP from Hortonworks in particular. 

We are excited about sharing more details soon on some of the HDP lessons we’ve learnt and continue to learn with our clients on a daily basis, as well as our experiences in partnership with our friends at Hortonworks. 

0 notes · See All
wearefullstack·5 years agoText

Highly customised technology, and particularly software development, can be intimidating when first encountered. For many of our clients, especially start-ups, their first experience of bespoke software development is working with Full Stack. Nicole Klein, one of Full Stack’s newest team members, shares her impressions and insights in collaborating and creating among technologists:

Joining a tech company, where the majority of staff are developers, is quite a challenge. From fitting in, to understanding the jokes and jargon, navigating your way in the company can be somewhat more difficult when you’re not familiar with the industry, making communication on all levels a unique challenge.

If I’ve learned anything from the experience so far, avoid pretending to know. If you’re a ‘non-techie’, the best advice I could give is to be extremely open to learning and admitting when you don’t understand something. If you pretend to understand, it will be very apparent – and on the flip side, the best developers, analysts and designers are always going to be teachers at heart, who want to help you understand why it is that they do what they do, and the passion that underpins their daily alchemy with tech.

Like with any other type of business, being part of a tech company requires a basic knowledge of what the company does. To truly be part of a team, one needs to be open to getting to know the business by asking questions or assisting on projects. Get to know your fellow teammates and communicating with them will become easier; you may find you have more in common than you thought.

We encourage all our clients to meet and work closely with team, not only at weekly check-ins, but also feel free to come to the office, spend a few hours with the team building your solution, and seeing what it takes to make digital dreams a reality.

The most challenging part of internal and external communications in a tech company, is the language gap (excuse the pun). Between working with developers who ‘speak in code’ and operations that ‘speaks in plain text’, bridging the gap becomes a task we must always work at becoming great at.

Whether you’re in a sales meeting, building a piece of software or in charge of internal communication, the most important thing to remember is know your audience; and the same is true in the day-to-day of a software company. In the office, that’s getting to know the team. With external communication, it’s getting to know who’s listening and speaking their language; this is something that works for any industry.

Having never worked for a software development company before, Full Stack seemed like a daunting challenge and opportunity that I simply could not pass up. That being said, once I settled in and got to know the people more, communication progressively becomes easier and being one of the ‘non-techies’ isn’t the terrifying task it seemed before.

At Full Stack, we thrive on unique and custom challenges. Our team comes from a variety of diverse backgrounds in finance, marketing, media, sales, e-commerce, philosophy and design (we even have a trained geographer – makes those Google Maps projects a little more interesting). If you would like to come have a coffee and talk ‘tech’ or even ‘no-tech’, feel free to drop Nicole a mail at: nicole.klein@fullstack.co.za to arrange a visit, or if you have a custom software development need, drop Herculaas a mail at: herculaas.vanheerden@fullstack.co.za

0 notes · See All
wearefullstack·5 years agoText

This probably means the most to the co-founders of Full Stack (because we’ve been at this now for a year) but we’ve crossed an important milestone last week: Full Stack is a year old! This is a considerable achievement and reflects the commitment, passion, creativity and ownership which has been shown by so many of us, our friends, partners, clients and frenemies.  

An anniversary is always a good time to reflect on the progress and pitfalls that have been faced in the last year. Full Stack started with 3 people in a small office share under a bridge (that didn’t last long), then moved to a dining room table for a few weeks, before operating out of a climbing gym above a liquor store. Irrespective of where we were we have always remained committed to doing great work with our clients, and are incredibly proud of the relationships we’ve made and fostered in the last year – for a business which is 400% larger than the size it was on day 1 just a year ago, we are proud to have only lost one client in the storm of all that growth, while adding 15 amazing partner clients.

So how hard have we been working for our clients in the last year, building software to address their business needs? We have delivered 20 discrete pieces of work, including 8 Xamarin solutions on both iOS and Android. Xamarin has been a special part of the work we’ve done, they were our second partnership (after amazing launch support from Microsoft BizSpark) and have seen us leading in the development of mobile.

When you call yourselves Full Stack you are setting yourselves a rather holistic goal: to be able to address any technical challenge. We love the challenge of new technology, new markets and change. We have done the best we could to develop relationships built on trust and mutual respect, and above all humility. We don’t believe in ‘culture’ as a sales tool or corporate bloviating – everyone at Full Stack knows what our values are and is enabled to always answer the question: what do I feel is the right thing based on those values in this situation? That hasn’t always meant that we’ve pleased everyone, but it has meant that we could all look at each other the next day knowing that we didn’t lose loyalty to the promise we make ourselves and all our clients: that we will do everything in our power to create a competitive advantage through the delivery of quality bespoke software at a fixed price.

We are an introspective sort, and are looking for ways to improve every single day. We’ve gotten a lot wrong – and we’ve enjoyed learning from our mistakes, apologising and moving on to greater heights with our clients and partners. After a year together as Full Stack, it’s turned out to be a good place to start. We look forward to an exciting second year building software.


������ 델

0 notes · See All
wearefullstack·6 years agoText

In the coming days and weeks we are going to be telling more of our clients and partners about Full Stack’s relationship with Xamarin. 

Before Full Stack was even a company, the founders knew that mobile is a critical engagement context with users. It shares many of the challenges and opportunities that the web first presented nearly 20 years ago. 

With the new paradigm comes a new challenge for tool chains and frameworks. We love C# at Full Stack. It’s an amazing language and works as well with start ups as with big enterprises which we engage with on a day to day basis. 

We chose to work with Xamarin because its the only platform that lets you develop one mobile solution and apply it to all handsets. This means we save time and money because we are building the solution once.

Customers want native apps, but they need development houses that can deliver those apps in within a reasonable timeline and budget without compromising the quality or execution. 

For us, partnership is a large part of our DNA. We have had a robust partnership with KINGLY, our app design and UX partners, from day one, with whom we share all our mobile work; and we work with specialist product owners such as SpeakMobile to ensure that our clients have their needs addressed holistically from a strategic perspective. We now join with Xamarin, already a great partner, to  rapidly deliver high quality, cost effective, native mobile apps across Africa. 

In the next few months several apps are going to be rolling out of Full Stack for a variety of clients. Targeting Android and iOS, these apps are utilising iBeacon/BLE technology, along with other edge features. At the same time they perform on lower end handsets so as to address the wider market. 

In 2015, Full Stack will continue to expand our mobile development capacity to address the growing needs of clients to deliver on the promise of mobile in Africa. 

0 notes · See All
wearefullstack·6 years agoPhoto

Full Stack is the first Xamarin Premier Consulting Partner in Africa

0 notes · See All
wearefullstack·6 years agoText

Full Stack is growing fast, and a big part of our growth is shared with the industry overall, namely mobile applications. 

As a dedicated .NET shop, some may think that we aren’t able to deliver cross device mobile applications, but fortunately that isn’t the case. 

We’ll be rolling out the details of the apps we’ve developed, our iOS 8 support, and other aspects of our cross device development in Xamarin in the weeks and months ahead (right now, we are kind of busy building great experiences!) 

Nevertheless, a big part of this is our partnership with Xamarin. And today we are happy to announce that we are their first Premier partner in Africa. We love mobile. And we love partnerships. And the best partner to create truly exceptional native apps is Xamarin. 

Our developer’s love Xamarin’s tools. Our sales team love Xamarin’s value proposition. And our start up vision involves creating high quality software, on time, for a fixed price. Xamarin helps us deliver on that promise.


0 notes · See All
Next Page